SQLの実行される順番

先日、HAVING構文について調べた時、条件を指定するのはWHEREと同じですが、実行される順番が違うと知りました。

そこでSQLの実行される順番について興味が湧いたので調べてみました!

 

SQLの実行される順番
  1. FROM(テーブルを指定)
  2. ON(テーブル結合の条件を指定)
  3. JOIN(テーブルを結合)
  4. WHERE(条件を指定)
  5. GROUP BY(グループ化)
  6. SUM、MAX、MIN、AVG、COUNT(集計関数)
  7. HAVING(条件を指定)
  8. SELECT(取得するカラムを指定)
  9. DISTINCT(重複行を除外)
  10. ORDER BY(データの取得順を指定)
  11. LIMIT(取得するデータの数を指定)

 

早い段階でデータを絞る方が処理が早くなるようです。

 

実際に書くときの順番
  1. SELECT(取得するカラムを指定)
  2. DISTINCT(重複行を除外)
  3. SUM、MAX、MIN、AVG、COUNT(集計関数)
  4. FROM(テーブルを指定)
  5. JOIN(テーブルを結合)
  6. ON(結合の条件を指定)
  7. WHERE(条件を指定)
  8. GROUP BY(グループ化)
  9. HAVING(条件を指定)
  10. ORDER BY(データの取得順を指定)
  11. LIMIT(取得するデータの数を指定)

 

感想その他

機会があったら大量のデータで処理速度の実験をしてみたいです!!