SQLLab
Глоссарий/EXPLAIN / EXPLAIN ANALYZE
ИндексыСредний

EXPLAIN / EXPLAIN ANALYZE

EXPLAIN показывает план выполнения запроса. EXPLAIN ANALYZE выполняет запрос и показывает реальное время.

Синтаксис
EXPLAIN [ANALYZE] [BUFFERS] SELECT ...;
EXPLAIN (FORMAT JSON) SELECT ...;

Объяснение

EXPLAIN показывает что планировщик собирается делать: какие индексы использовать, какие типы соединений. EXPLAIN ANALYZE реально выполняет запрос — будь осторожен с UPDATE/DELETE (оберни в транзакцию и ROLLBACK). Что смотреть: - Seq Scan на большой таблице — нужен индекс - Rows: большое расхождение плана и реальности — нужен ANALYZE - cost — условные единицы, сравнивай между узлами

Пример

-- Безопасный EXPLAIN ANALYZE для UPDATE
BEGIN;
EXPLAIN ANALYZE
  UPDATE orders SET status = 'expired' WHERE created_at < '2023-01-01';
ROLLBACK;