Sobes.tech
Senior

Cum se optimizează o interogare SQL lentă? Ce sunt EXPLAIN și EXPLAIN ANALYZE?

sobes.tech AI

Răspuns de la 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;

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