Выбор ответа Junior EXPLAIN и оптимизация спрашивают часто обновлено
EXPLAIN и EXPLAIN ANALYZE
Вопрос
Чем EXPLAIN ANALYZE DELETE FROM sessions WHERE expires_at < now() отличается от EXPLAIN DELETE ...?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: ANALYZE реально выполнит DELETE, без него только оценки. EXPLAIN строит план и показывает оценки.
Варианты ответа
- ANALYZE реально выполнит DELETE, без него только оценкиправильный ответ
- Ничем: оба варианта только показывают план и ничего не удаляют
- ANALYZE обновляет статистику таблицы перед построением плана
- ANALYZE выполнит DELETE в отдельной транзакции и откатит его
Разбор
EXPLAIN строит план и показывает оценки. EXPLAIN ANALYZE выполняет запрос по-настоящему, поэтому для изменяющих запросов его оборачивают в BEGIN; ... ROLLBACK;. Автоматического отката нет. Обновление статистики делает отдельная команда ANALYZE таблица, тут одинаковое слово запутывает.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.