-1

これが繰り返しである場合は申し訳ありません。どのクエリがより速く実行されますか? mySql を使用します。

select fieldA from myTable where fieldB IN (2,4,6,8)

select fieldA from myTable where (fieldB=2 OR fieldB=4 OR fieldB=6 OR fieldB=8)

リストは比較的小さいので、おそらく 2 つのクエリ間でそれほど違いはありませんが、4 つではなく 1000 個のパラメーターのようなものだったと言います。

4

2 に答える 2

1

コメントされたように:疑わしい場合は、ベンチマークしてください。

実際の回答として、

  1. とにかく、SQLエンジンがクエリを最適化して最適化する可能性が高い
  2. そうでない場合INは、ルックアップ タイプのテストであるという理由で、多数のパラメータに対してより高速になる可能性があります (ほとんどの場合、エンジンは、の内容を含む一時テーブルを内部的に作成すると思いますIN。次に、バイナリ検索タイプのアルゴリズムを使用して、テーブル内のすべての値に対してテストする必要がないようにします)。
  3. 確認するためのベンチマーク。
  4. EXPLAINエンジンが内部的に行うことを提案するものを確認するために使用します。
于 2013-08-01T16:44:08.383 に答える