慢速SQL连接5000行

时间:2016-06-13 15:18:54

标签: mysql sql join

当我尝试检查不同测试之间的结果是否存在差异时,我遇到了问题。内部select语句返回大约5000行,但是连接在一分钟内没有完成。我希望输出大约10行。加入这么慢的原因是什么?

select * from(
           select *
           from R inner join C
           on R.i = C.j
           where C.j in (2343,3423,4222,1124,2344)
) AS A,(
           select *
           from R inner join C
           on R.i = C.j
           where C.j in (2343,3423,4222,1124,2344)
) AS B
where A.x = B.x and
A.y = B.y and
A.result <> B.result

1 个答案:

答案 0 :(得分:0)

我认为你可以用聚合做你想做的事情:

select x, y, group_concat(distinct result) as results
from R inner join
     C
     on R.i = C.j
where C.j in (2343, 3423, 4222, 1124, 2344)
group by x, y
having count(distinct result) > 1;

对于此查询,C(j)R(i)上的索引非常有用。我也会将xy添加到相应的索引中,但我不知道他们正在梳理哪个表格。