В PostgreSQL DELETE обычно не уменьшает файл таблицы сразу: строки становятся невидимыми, а место позже очищается для повторного использования.
Что произойдёт с размером таблицы после INSERT тысячи строк и последующего DELETE всего?
В PostgreSQL DELETE обычно не уменьшает файл таблицы сразу: строки становятся невидимыми, а место позже очищается для повторного использования.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Что произойдёт с размером таблицы после INSERT тысячи строк и последующего DELETE всего?
Ответ
В PostgreSQL DELETE обычно не уменьшает файл таблицы сразу: строки становятся невидимыми, а место позже очищается для повторного использования.
Размер после INSERT зависит от исходного свободного места, индексов и размера строк, поэтому точную цифру по числу строк определить нельзя. VACUUM освобождает место внутри таблицы и иногда обрезает пустой хвост. VACUUM FULL переписывает таблицу с сильной блокировкой; для полного очищения есть TRUNCATE с иной семантикой. Для другой СУБД детали могут отличаться.
Источник: www.postgresql.org.