MySQL 5.0.67でHibernateのJPA実装を使用しています。 MySQLはInnoDBを使用するように設定されています。SQL IN節が個々のクエリよりも遅い
JPAクエリ(SQLに変換される)を実行すると、IN
句を使用すると個々のクエリを実行するよりも処理速度が遅くなることがわかりました。例:
SELECT p FROM Person p WHERE p.name IN ('Joe', 'Jane', 'Bob', 'Alice')
は、4つの別々のクエリより遅いです:
SELECT p FROM Person p WHERE p.name = 'Joe'
SELECT p FROM Person p WHERE p.name = 'Jane'
SELECT p FROM Person p WHERE p.name = 'Bob'
SELECT p FROM Person p WHERE p.name = 'Alice'
これはなぜでしょうか?これはMySQLのパフォーマンス制限ですか?あなたはIN演算子を使用している場合、それは非常に異なると言っ以上ではありません
SQL Serverにはこの欠点がありますか? –
私はSQL Serverユーザーではないので、その答えはわかりません。実行するのが最善の方法は、クエリアナライザで両方のクエリフォームを試し、実行計画を表示メニューオプションを使用します。 –
いいえ、SQL Serverにはこの問題はありません –