exists自体はほとんどのSQL自体に実装されていると思われます。
しかし、使用方法を誤るとレスポンスに大きな影響を与えてしまします。
副問合せであるexists内部で、集問い合わせのキー列と結合していても、主問い合わせのキー参照にはならず、下手をすれば全検索になってしまうということです。
例えば、以下のようなSQLではtable1を全文検索してしまいます。
select count(*) from table1 where exists ( select * from table2 and table2.id between 50 and 100 and table2.id = table1.id )
and table2.id = table1.idとしていても、table1は全文検索してしまうのです。
table1に100万行あったとしたら、想定外のレスポンス低下となるでしょう。
対応するには条件分にexists以外にtable1に対する条件が必用です。
select count(*) from table1 where exists ( select * from table2 and table2.id between 50 and 100 and table2.id = table1.id ) and table1.id between 1 and 500
このような失敗を起こさないためにも、常にexplainを使用して、実行計画を確認することが大事です。
explain select count(*) from table1 where exists ( select * from table2 and table2.id between 50 and 100 and table2.id = table1.id ) and table1.id between 1 and 500