1. ホーム
  2. sql

[解決済み] SQL - WHERE条件の順番は重要か?

2023-04-04 06:01:32

質問

仮に category_id のインデックスキー(主キーではない)であるとします。 books . 次の2つのSQL文の間に違いはありますか?

SELECT * FROM books WHERE author='Bill' AND category_id=1

SELECT * FROM books WHERE category_id=1 AND author='Bill'

でレコードをフィルタリングしているのでしょう。 category_id でフィルタリングし、次に author のようにする方が、逆順にフィルタリングするよりも速いです。SQLエンジンはこのようにするほど賢いのでしょうか?

どのように解決するのですか?

いいえ、WHERE句の順序は重要ではありません。

オプティマイザはクエリ & をレビューし、インデックスなどに基づいてデータを取得するための最適な手段を決定します。 たとえ、category_id と author 列にカバーするインデックスがあったとしても、どちらかがそれを使用する基準を満たすでしょう (よりよいものがないと仮定して)。