EXPLAIN / EXPLAIN ANALYZE
EXPLAIN показывает план выполнения запроса. EXPLAIN ANALYZE выполняет запрос и показывает реальное время.
EXPLAIN [ANALYZE] [BUFFERS] SELECT ...; EXPLAIN (FORMAT JSON) SELECT ...;
Объяснение
Пример
-- Безопасный EXPLAIN ANALYZE для UPDATE BEGIN; EXPLAIN ANALYZE UPDATE orders SET status = 'expired' WHERE created_at < '2023-01-01'; ROLLBACK;
Связанные термины
Анекдоты по теме
— EXPLAIN показывает plan. А EXPLAIN ANALYZE? — EXPLAIN ANALYZE реально выполняет запрос и показывает фактическое время. — Значит, EXPLAIN ANALYZE на DELETE... — Удалит данные. Оберни в транзакцию и сделай ROLLBACK.
— Что такое connection limit в PostgreSQL? — max_connections = 100 по умолчанию. — Что будет при превышении? — FATAL: sorry, too many clients already. — Как увеличить? — max_connections в postgresql.conf. Но каждое соединение — ~5-10MB памяти. — PgBouncer? — Пулер между приложением и PostgreSQL. Тысячи приложений → десятки соединений к базе.
Разработчик смотрит на EXPLAIN и видит: cost=0.00..99999.00 rows=1000000 — Это нормально? DBA: (смотрит на часы, потом на разработчика) — Нет.