EXPLAIN показывает оценённый план без выполнения запроса, а EXPLAIN ANALYZE действительно выполняет его и добавляет фактические измерения. Это особенно важно для изменяющих запросов.
В чём отличие EXPLAIN от EXPLAIN ANALYZE в PostgreSQL?
EXPLAIN показывает оценённый план без выполнения запроса, а EXPLAIN ANALYZE действительно выполняет его и добавляет фактические измерения. Это особенно важно для изменяющих запросов.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
EXPLAIN показывает оценённый план без выполнения запроса, а EXPLAIN ANALYZE действительно выполняет его и добавляет фактические измерения. Это особенно важно для изменяющих запросов.
В обычном плане видны выбранные операции, оценка стоимости и числа строк; стоимость не выражена прямо в миллисекундах. ANALYZE добавляет фактическое время, строки и loops, помогая найти ошибки оценки. BUFFERS показывает работу с буферами. Для INSERT/UPDATE/DELETE запрос действительно изменяет данные; обёртка в rollback не отменяет абсолютно все внешние эффекты и, например, продвижение sequences. На production учитывают нагрузку и выбирают безопасный сценарий диагностики.
Источник: www.postgresql.org.