SQLの実行される順番
先日、HAVING構文について調べた時、条件を指定するのはWHEREと同じですが、実行される順番が違うと知りました。
そこでSQLの実行される順番について興味が湧いたので調べてみました!
SQLの実行される順番
- FROM(テーブルを指定)
- ON(テーブル結合の条件を指定)
- JOIN(テーブルを結合)
- WHERE(条件を指定)
- GROUP BY(グループ化)
- SUM、MAX、MIN、AVG、COUNT(集計関数)
- HAVING(条件を指定)
- SELECT(取得するカラムを指定)
- DISTINCT(重複行を除外)
- ORDER BY(データの取得順を指定)
- LIMIT(取得するデータの数を指定)
早い段階でデータを絞る方が処理が早くなるようです。
実際に書くときの順番
- SELECT(取得するカラムを指定)
- DISTINCT(重複行を除外)
- SUM、MAX、MIN、AVG、COUNT(集計関数)
- FROM(テーブルを指定)
- JOIN(テーブルを結合)
- ON(結合の条件を指定)
- WHERE(条件を指定)
- GROUP BY(グループ化)
- HAVING(条件を指定)
- ORDER BY(データの取得順を指定)
- LIMIT(取得するデータの数を指定)
感想その他
機会があったら大量のデータで処理速度の実験をしてみたいです!!