Sobes.tech
Back to questions
Senior
6

В чём разница между EXPLAIN и EXPLAIN ANALYZE? Почему EXPLAIN ANALYZE не следует использовать на проде?

Companies where asked
ВайлдберрисВайлдберрис

Answer from AI

sobes.tech AI

Команда EXPLAIN в SQL используется для получения плана выполнения запроса, то есть она показывает, как СУБД собирается выполнить запрос, какие индексы будут использоваться, порядок операций и т.д. Однако EXPLAIN не выполняет сам запрос, а лишь строит и выводит план.

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

Почему не стоит использовать EXPLAIN ANALYZE на продакшене:

  • Запрос реально выполняется, что может привести к нагрузке на базу, особенно если запрос тяжелый.
  • Может изменять данные, если запрос модифицирующий (INSERT, UPDATE, DELETE).
  • Время выполнения увеличивается из-за сбора статистики.

Поэтому EXPLAIN ANALYZE обычно применяют в тестовой среде или на копии данных, чтобы не влиять на работу продакшена.