В SQL-запросе операторы выполняются в следующем порядке:
1.
FROM / JOIN2.
WHERE3.
GROUP BY4.
HAVING5.
SELECT6.
DISTINCT7.
ORDER BY8.
LIMIT / OFFETПриемы, применяемые на каждом этапе, помогают ускорить выполнение следующих шагов. Поэтому важно знать порядок их выполнения. Чтобы добиться максимальной эффективности, сосредоточьтесь на оптимизации шагов, расположенных на более ранних этапах запроса.
С учётом этого рассмотрим некоторые советы по оптимизации:
Максимизируйте выражение `
WHERE`.Это выражение выполняется раньше, поэтому оно предоставляет хорошую возможность уменьшить размер набора данных до того, как будет обработана остальная часть запроса.
Фильтруйте строки перед `
JOIN`Хотя запрос
FROM/JOIN выполняется первым, всё равно можно ограничить количество строк. Чтобы ограничить количество присоединяемых строк, используйте подзапрос в операторе FROM вместо таблицы.Используйте `
WHERE` вместо `HAVING`Выражение
HAVING выполняется после WHERE и GROUP BY. Это означает, что при возможности стоит перенести все необходимые условия в выражение WHERE.Не путайте `
LIMIT`, `OFFSET` и `DISTINCT` с методами оптимизацииЛегко предположить, что они повышают производительность за счет минимизации набора данных, но это не так. Поскольку они выполняются в конце запроса, они практически не влияют на его производительность.
🖥 Порядок выполнения CQL запроса
📱 @dev_notes_ru
#SQL #DataBase #tips
