2016-06-13 6 views
2

異なるテスト間で結果に違いがあるかどうかを確認しようとしたときに問題が発生しました。内部のselect文は約5000行を返しますが、結合は1分で終了しません。出力は約10行だと私は期待しています。参加が遅い理由は何ですか?5000行でSQL結合が遅い

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 

答えて

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)と​​のインデックスは非常に参考になります。私はxyを適切なインデックスにも追加しますが、どのテーブルからコーディングしているのか分かりません。