VACUUM — это процесс обслуживания PostgreSQL, который освобождает место от мёртвых кортежей (устаревших версий строк, оставленных MVCC) и обновляет статистику. Поскольку MVCC в Postgres создаёт мёртвые строки при каждом UPDATE/DELETE, VACUUM необходим для предотвращения раздува и поддержания здоровья базы данных. Autovacuum автоматизирует этот процесс.
Почему мёртвые кортежи существуют (связь с MVCC)
MVCC: an UPDATE/DELETE doesn't overwrite a row — it marks the old version obsolete
(a "dead tuple") and may create a new one. Dead tuples accumulate over time.
→ Without cleanup, dead tuples cause BLOAT: wasted disk space, slower scans
(more data to read), degraded performance.
VACUUM reclaims this dead space → keeps tables compact and queries fast.
