Sobes.tech
Senior

Šta radi VACUUM u PostgreSQL i zašto se pojavljuju mrtve linije?

sobes.tech АИ

Одговор од АИ

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

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

Пример:

VACUUM my_table;

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