2

重複の可能性:
WHERE句のフィールドの順序はMySQLのパフォーマンスに影響しますか?

WHERE句の要素の順序によって、クエリの速度が変わりますか?

私は次のものを持っています:

SELECT * FROM table1 WHERE a<b

。これにより、500レコードが返されます。

SELECT * FROM table1 WHERE c<d

。これにより、130000000レコードが返されます。

ここで、次のいずれかを選択できる場合:

SELECT * FROM table1 WHERE a<b AND c<d

また

SELECT * FROM table1 WHERE c<d AND a<b

これらの2つのクエリのどちらが高速になりますか?順序は重要ですか?

4

3 に答える 3

3

パフォーマンスに影響を与えるのは、インデックスを使用する場合のみです。

にインデックスがある場合、インデックスが左から右に移動するため(a, c)、述語の実行が遅くなります。WHERE c < d AND a < b

インデックスがない場合、順序は関係ありません。

于 2012-10-31T13:35:54.823 に答える
0

いいえ、違いはありません。数学のように、A + B = B + C。両方を交換しても違いがないことを意味します。

于 2012-10-31T13:34:08.140 に答える
0

違いはないと思いますが、とにかくSQLによって最適化されます。この質問の詳細情報: WHERE 句のフィールドの順序は MySQL のパフォーマンスに影響しますか?

于 2012-10-31T13:36:02.633 に答える