Sobes.tech
Назад к вопросам
Senior
4

Что делает VACUUM в PostgreSQL и почему появляются мёртвые строки?

Компании, где спрашивали
СБЕРСБЕР

Ответ от нейросети

sobes.tech AI

В PostgreSQL при обновлении или удалении строк старые версии строк не удаляются сразу, а становятся "мёртвыми" (dead tuples). Это связано с MVCC (многоверсионностью), которая обеспечивает изоляцию транзакций. Мёртвые строки занимают место и могут замедлять работу базы.

Команда VACUUM очищает эти мёртвые строки, освобождая место и предотвращая рост таблиц и индексов. Есть обычный VACUUM, который просто помечает пространство как свободное, и VACUUM FULL, который дополнительно сжимает таблицу, уменьшая её физический размер.

Пример:

VACUUM my_table;

Таким образом, VACUUM поддерживает производительность и предотвращает чрезмерное использование дискового пространства.