Back to questions
СБЕР
Senior
3
Что делает VACUUM в PostgreSQL и почему появляются мёртвые строки?
Companies where asked
Answer from AI
sobes.tech AI
В PostgreSQL при обновлении или удалении строк старые версии строк не удаляются сразу, а становятся "мёртвыми" (dead tuples). Это связано с MVCC (многоверсионностью), которая обеспечивает изоляцию транзакций. Мёртвые строки занимают место и могут замедлять работу базы.
Команда VACUUM очищает эти мёртвые строки, освобождая место и предотвращая рост таблиц и индексов. Есть обычный VACUUM, который просто помечает пространство как свободное, и VACUUM FULL, который дополнительно сжимает таблицу, уменьшая её физический размер.
Пример:
VACUUM my_table;
Таким образом, VACUUM поддерживает производительность и предотвращает чрезмерное использование дискового пространства.