in と exists の違い

in と exists の違いとは・・・

in : 副問い合わせを評価した後に、親問い合わせへ結果を渡す。
exists : 親問い合わせを評価した後に、副問い合わせへ結果を渡す。

なので、取得レコードを 親 or 副 のどちらで絞り込むかによって変わる。
副問い合わせで絞り込めれば in の方が早いし、
親問い合わせで絞り込めれば exists の方が早い。

そもそも、in は条件の複数指定だし、exists は存在確認だから、
自然とそうなるのか???

ちなみに、今までは exists に列名を指定していたが、
「*」or「1」の方が速いらしい・・・。
「*」を指定すると、オプティマイザが勝手に頑張ってくれて、
「1」を指定すると、文字リテラルだから速い。

まあ、「1」を指定するのは変な感じだから「*」がいいかも・・・。