Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Postgres: explain, analyze

Что произойдёт при попытке выполнить EXPLAIN ANALYZE DROP TABLE?

Вопрос проверяет понимание поведения PostgreSQL при использовании EXPLAIN ANALYZE с DDL-командами и знание ограничений этого инструмента.

Короткий ответ

При попытке выполнить EXPLAIN ANALYZE DROP TABLE PostgreSQL вернёт ошибку. DROP TABLE — это DDL-операция, для которой не строится план выполнения. EXPLAIN ANALYZE ожидает запрос, проходящий через оптимизатор. Поэтому такая команда считается некорректной. Таблица при этом удалена не будет.

Длинный ответ

Важно понимать, что EXPLAIN ANALYZE не является «обёрткой для любой SQL-команды». Он тесно связан с механизмом планирования запросов.

Определение

DDL command — это SQL-команда, которая изменяет структуру базы данных, а не работает с данными напрямую.

1. Что ожидает EXPLAIN ANALYZE

EXPLAIN ANALYZE:

  • передаёт запрос оптимизатору;

  • строит план выполнения;

  • затем реально выполняет запрос и замеряет метрики.

Это возможно только для операций, у которых есть execution plan.

2. Что происходит с DROP TABLE

Команда DROP TABLE:

  • не использует оптимизатор запросов;

  • выполняется напрямую на уровне каталога БД;

  • не имеет пошагового плана выполнения.

Поэтому PostgreSQL:

  • не может построить execution plan;

  • возвращает ошибку синтаксиса или типа операции.

3. Важный момент безопасности

Даже если используется ANALYZE:

  • команда не будет выполнена;

  • таблица не будет удалена.

Это защищает от случайного destructive-анализа.

4. Как проверить стоимость DROP TABLE

На практике оценивают:

  • размер таблицы;

  • наличие зависимостей (FK, views);

  • блокировки;

  • время выполнения на staging.

5. Краткий вывод

EXPLAIN ANALYZE DROP TABLE не работает и завершится ошибкой, потому что DDL-команды не имеют плана выполнения. Таблица при этом не удаляется.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    6

Навыки

  • Postgres

    Postgres

Ключевые слова

#explain

#analyze

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.