Выбор ответа Junior EXPLAIN и оптимизация спрашивают часто обновлено

EXPLAIN и EXPLAIN ANALYZE

Вопрос

Чем EXPLAIN ANALYZE DELETE FROM sessions WHERE expires_at < now() отличается от EXPLAIN DELETE ...?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: ANALYZE реально выполнит DELETE, без него только оценки. EXPLAIN строит план и показывает оценки.

Варианты ответа

  1. ANALYZE реально выполнит DELETE, без него только оценкиправильный ответ
  2. Ничем: оба варианта только показывают план и ничего не удаляют
  3. ANALYZE обновляет статистику таблицы перед построением плана
  4. ANALYZE выполнит DELETE в отдельной транзакции и откатит его

Разбор

EXPLAIN строит план и показывает оценки. EXPLAIN ANALYZE выполняет запрос по-настоящему, поэтому для изменяющих запросов его оборачивают в BEGIN; ... ROLLBACK;. Автоматического отката нет. Обновление статистики делает отдельная команда ANALYZE таблица, тут одинаковое слово запутывает.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме