Можно ли сделать explain analyze для update запросов

«Можно ли сделать explain analyze для update запросов» — вопрос из категории Базы данных, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, EXPLAIN ANALYZE работает и для UPDATE запросов в PostgreSQL. Он показывает план выполнения и реальные метрики (время, количество строк) для операций обновления.

Пример:

EXPLAIN ANALYZE 
UPDATE users SET status = 'active' WHERE last_login > NOW() - INTERVAL '30 days';

Вывод покажет:

  • Сканирование таблицы/индекса
  • Фильтрацию строк
  • Время выполнения
  • Количество обработанных строк

Особенности:

  1. Для больших таблиц может быть дорогим, так как фактически выполняет UPDATE
  2. Показывает стоимость операций до и после обновления
  3. Может помочь найти проблемы с индексами или дорогими триггерами

Лучше выполнять на тестовой базе или с BEGIN; ROLLBACK; в транзакции.