Назад к вопросам
СБЕР
Senior
7
Как оптимизировать медленный SQL-запрос? Что такое EXPLAIN и EXPLAIN ANALYZE?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Оптимизация медленного SQL-запроса начинается с анализа его плана выполнения. Для этого используются команды EXPLAIN и EXPLAIN ANALYZE.
- EXPLAIN показывает план выполнения запроса, как его видит СУБД, без фактического запуска.
- EXPLAIN ANALYZE выполняет запрос и показывает реальное время выполнения каждой операции, что помогает выявить узкие места.
Основные шаги оптимизации:
- Изучить план выполнения, обратить внимание на полные сканирования таблиц (Seq Scan), отсутствие индексов.
- Добавить или изменить индексы для ускорения поиска.
- Переписать запрос для более эффективного использования индексов.
- Уменьшить объем обрабатываемых данных (фильтрация, агрегация).
Пример использования EXPLAIN в PostgreSQL:
EXPLAIN ANALYZE SELECT * FROM orders WHERE customer_id = 123;
Это покажет, сколько времени занимает поиск и какие операции выполняются.