私は全体的なパフォーマンスについて考えており、その問題のためにテーブルから行を取得する最速の方法について質問に来ました:
SELECT *
FROM table a
WHERE a.id IN (SELECT id FROM table b)
また
SELECT *
FROM table a
WHERE (SELECT COUNT(id) FROM table b WHERE b.id = a.id)>0
私の開発マシンでプロファイラーを実行しても大きな違いはありませんが、その問題を比較するための巨大なデータ テーブルはありません。
ですから、誰かがどちらの方法が優れているか、またその理由を教えてくれたらうれしいです。値を多くのようIN
に分割することを一度読んだことがありますが、これが一般的であり、サブ選択を照会した場合と同じかどうかはわかりません。この場合、COUNTの方が速いと思います...OR
IN (1,2,3,4)
1 OR 2 OR 3 OR 4