クエリを作成するときに指定する順序はパフォーマンスに影響しますか? または、SQL がスマート フィルタリングを行います。
たとえば、200 万件のレコードを持つテーブル Employee があるとします。
Employee( emp_id, name, dept_id, country_id )
国 ID が 500 で部門 ID が 17 の従業員の ID と名前を取得したいとは言えません。 .
私が行うと、パフォーマンスの違いが生じますか?
SELECT *
FROM employees
where dept_id = 17 and country_id= 500
私がするよりも:
SELECT *
FROM employees
where country_id= 500 and dept_id = 17
後者がテーブルを 100 万に削減し、そこから残りを実行すると仮定すると、最初のクエリは 300k に削減され、そこから 2 番目のフィルターを実行します。
ただし、前に述べたように、これが SQL モーターがクエリを処理する方法であるかどうかはわかりません。