UPDATE и DELETE оставляют старые версии строк из-за MVCC. Даже при малом числе актуальных строк таблица и индексы могут содержать много свободного или пока неочищенного пространства.
Почему в PostgreSQL таблица может раздуваться при малом числе строк и как это связано с VACUUM? Можно ли настроить vacuum и насколько он тяжёлый?
UPDATE и DELETE оставляют старые версии строк из-за MVCC. Даже при малом числе актуальных строк таблица и индексы могут содержать много свободного или пока неочищенного пространства.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
UPDATE и DELETE оставляют старые версии строк из-за MVCC. Даже при малом числе актуальных строк таблица и индексы могут содержать много свободного или пока неочищенного пространства.
Обычный VACUUM делает место доступным для повторного использования; обычно он не уменьшает файл целиком. Autovacuum настраивают по порогам и стоимости, в том числе для отдельных таблиц. Долгие транзакции мешают очистке. VACUUM FULL переписывает таблицу, требует места и сильной блокировки, поэтому не является обычной ежедневной процедурой.
Источник: www.postgresql.org.