TGViewer
Заметки разработчика Заметки разработчика @dev_notes_ru · 458 subscribers
Post #1528 386
🚀 Оптимизация SQL запросов

В SQL-запросе операторы выполняются в следующем порядке:

1. FROM / JOIN
2. WHERE
3. GROUP BY
4. HAVING
5. SELECT
6. DISTINCT
7. ORDER BY
8. LIMIT / OFFET

Приемы, применяемые на каждом этапе, помогают ускорить выполнение следующих шагов. Поэтому важно знать порядок их выполнения. Чтобы добиться максимальной эффективности, сосредоточьтесь на оптимизации шагов, расположенных на более ранних этапах запроса.

С учётом этого рассмотрим некоторые советы по оптимизации:

Максимизируйте выражение `WHERE`.

Это выражение выполняется раньше, поэтому оно предоставляет хорошую возможность уменьшить размер набора данных до того, как будет обработана остальная часть запроса.

Фильтруйте строки перед `JOIN`

Хотя запрос FROM/JOIN выполняется первым, всё равно можно ограничить количество строк. Чтобы ограничить количество присоединяемых строк, используйте подзапрос в операторе FROM вместо таблицы.

Используйте `WHERE` вместо `HAVING`

Выражение HAVING выполняется после WHERE и GROUP BY. Это означает, что при возможности стоит перенести все необходимые условия в выражение WHERE.

Не путайте `LIMIT`, `OFFSET` и `DISTINCT` с методами оптимизации

Легко предположить, что они повышают производительность за счет минимизации набора данных, но это не так. Поскольку они выполняются в конце запроса, они практически не влияют на его производительность.

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

📱 @dev_notes_ru

#SQL #DataBase #tips
  • 👍 3
  • 🔥 1
More from @dev_notes_ru
  1. Apr 27, 2026Уникальный индекс при мягком удалении: решаем проблему дубликатов При использовании мягког…
  2. Apr 23, 2026Статические переменные в PHP: использование static внутри функций По данным исследования E…
  3. Apr 21, 2026Валидация массивов в Laravel без N+1: Form Request как построитель контекста Применение пр…
  4. Apr 13, 2026JSON в браузере: import или fetch — руководство по выбору Спойлер: import из JSON — это не…
  5. Apr 6, 2026Проксирование fetch() в серверном JavaScript Стандарт Fetch не специфицирует проксирование…
  6. Apr 2, 2026Taskfile: Когда пора отказаться от Makefile (а когда — нет) Makefile — инструмент с почти…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →