Чем отличается VACUUM от VACUUM FULL в PostgreSQL?

Обычный VACUUM освобождает место от ненужных версий строк для повторного использования внутри таблицы. VACUUM FULL переписывает таблицу компактно и обычно возвращает больше места файловой системе.

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

Что ответить на собеседовании

Обычный VACUUM освобождает место от ненужных версий строк для повторного использования внутри таблицы. VACUUM FULL переписывает таблицу компактно и обычно возвращает больше места файловой системе.

Подробный разбор

Ответ с пояснениями

Обычный VACUUM освобождает место от ненужных версий строк для повторного использования внутри таблицы. VACUUM FULL переписывает таблицу компактно и обычно возвращает больше места файловой системе.

Обычный VACUUM совместим с повседневным чтением и записью, хотя тоже берёт служебные блокировки; уменьшение файла возможно лишь в отдельных случаях, например для свободного хвоста. VACUUM FULL требует ACCESS EXCLUSIVE и дополнительного места под новую копию.

Поэтому FULL не является обычной более эффективной заменой autovacuum. Его планируют при существенном раздувании и допустимом окне блокировки. Обновление статистики оптимизатора — задача ANALYZE, которую можно сочетать с VACUUM.

Источник: www.postgresql.org.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее