MySQL порядок выполнения запроса SQL

Forums:

Порядок выполнения SQL запроса

Если говорить в таких грубых приближениях, то порядок примерно такой:

  1. FROM
  2. WHERE
  3. GROUP BY
  4. SELECT
  5. HAVING
  6. ORDER BY
  7. LIMIT

Таким образом (в "грубых приближениях"):

  1. Сначала смотрится - откуда (FROM) вообще делаем выборку
  2. Затем выбирается лишь то что указано в WHERE
  3. Затем (если есть) производится группировка по указанному параметру (GROUP BY)
  4. Затем выбираются уже конкретные SELECT
  5. Затем уже сгруппированные значения просеиваются через условия HAVING
  6. Потом выполняется сортировка (ORDER BY)
  7. И лишь в конце выбирается нужный отрезок полученных данных (LIMIT)

Быстрый случай для LIMIT

С другой стороны, если мы имеем только (без вычеркнутых):

  1. FROM
  2. WHERE
  3. GROUP BY
  4. SELECT
  5. HAVING
  6. ORDER BY
  7. LIMIT

То LIMIT просто остановит выборку в нужный момент и запрос выполнится весьма быстро.

отсюда (подробности): http://www.sql.ru/forum/701612/etapy-vyp...