Sobes.tech
Back to questions
Senior
8

Как оптимизировать медленный SQL-запрос? Что такое EXPLAIN и EXPLAIN ANALYZE?

Companies where asked
СБЕРСБЕР

Answer from AI

sobes.tech AI

Оптимизация медленного SQL-запроса начинается с анализа его плана выполнения. Для этого используются команды EXPLAIN и EXPLAIN ANALYZE.

  • EXPLAIN показывает план выполнения запроса, как его видит СУБД, без фактического запуска.
  • EXPLAIN ANALYZE выполняет запрос и показывает реальное время выполнения каждой операции, что помогает выявить узкие места.

Основные шаги оптимизации:

  1. Изучить план выполнения, обратить внимание на полные сканирования таблиц (Seq Scan), отсутствие индексов.
  2. Добавить или изменить индексы для ускорения поиска.
  3. Переписать запрос для более эффективного использования индексов.
  4. Уменьшить объем обрабатываемых данных (фильтрация, агрегация).

Пример использования EXPLAIN в PostgreSQL:

EXPLAIN ANALYZE SELECT * FROM orders WHERE customer_id = 123;

Это покажет, сколько времени занимает поиск и какие операции выполняются.