ИндексыСредний
EXPLAIN ANALYZE
Реально выполняет запрос и показывает фактическое время и число строк — в сравнении с оценкой планировщика.
Синтаксис
EXPLAIN ANALYZE SELECT ...;
EXPLAIN (ANALYZE, BUFFERS) SELECT ...;Объяснение
В отличие от обычного EXPLAIN, EXPLAIN ANALYZE запрос РЕАЛЬНО выполняет — и рядом с оценкой планировщика показывает фактические время и число строк на каждом шаге. Именно это расхождение между оценкой и фактом чаще всего указывает на проблему: устаревшую статистику или отсутствующий индекс.
Осторожно с UPDATE/DELETE: раз запрос выполняется по-настоящему, данные реально изменятся. Оборачивайте в транзакцию с ROLLBACK, если просто хотите посмотреть план.
Пример
-- Безопасный EXPLAIN ANALYZE для UPDATE
BEGIN;
EXPLAIN ANALYZE
UPDATE orders SET status = 'expired' WHERE created_at < '2023-01-01';
ROLLBACK;Связанные термины
EXPLAINПоказывает план выполнения запроса без реального выполнения — какие индексы и типы соединений выберет планировщик.INDEX (индекс)Структура данных, ускоряющая поиск строк по значению колонки.Seq Scan / Index ScanSeq Scan — полное сканирование таблицы. Index Scan — поиск через индекс. EXPLAIN показывает какой метод выбран.