Почему в PostgreSQL таблица может раздуваться при малом числе строк и как это связано с VACUUM? Можно ли настроить vacuum и насколько он тяжёлый?

UPDATE и DELETE оставляют старые версии строк из-за MVCC. Даже при малом числе актуальных строк таблица и индексы могут содержать много свободного или пока неочищенного пространства.

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

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

UPDATE и DELETE оставляют старые версии строк из-за MVCC. Даже при малом числе актуальных строк таблица и индексы могут содержать много свободного или пока неочищенного пространства.

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

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

UPDATE и DELETE оставляют старые версии строк из-за MVCC. Даже при малом числе актуальных строк таблица и индексы могут содержать много свободного или пока неочищенного пространства.

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

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

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

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

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

Подробнее