> В чем разница между EXPLAIN и EXPLAIN ANALYZE (Go)

Уровень: middle · Роль: backend · Категория: Технические вопросы

Компании: InDrive, Employcity

Стек: Go

> Пример ответа

EXPLAIN показывает план выполнения запроса - последовательность операций (сканирование таблиц, соединения, сортировки и т.д.) и оценочную стоимость каждой операции, основанную на статистике. Это полезно для анализа структуры запроса без его фактического выполнения.

EXPLAIN ANALYZE выполняет запрос и добавляет к плану реальные метрики: фактическое время выполнения, количество обработанных строк, количество циклов для каждого узла. Разница принципиальна: EXPLAIN даёт предположение, EXPLAIN ANALYZE - факт. Например, EXPLAIN может показать оценку в 1000 строк, а EXPLAIN ANALYZE - что на самом деле обработано 1 млн строк, что указывает на неточную статистику или плохой план.

В Go-бэкенде это критично при оптимизации SQL-запросов к БД (например, PostgreSQL), так как позволяет выявить узкие места: полные сканирования таблиц вместо использования индексов, неверные оценки кардинальности, избыточные сортировки.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью