IT-словарь › Базы данных › VACUUM (Postgres)

VACUUM (Postgres)

Базы данных Svenska → Обновлено: 2026-10-18

Обслуживающая операция PostgreSQL, убирающая «мёртвые строки» (dead tuples), которые MVCC оставляет после UPDATE и DELETE. Без VACUUM таблицы раздуваются, а идентификаторы транзакций могут закончиться. Обычно этим занимается autovacuum.

Зачем он нужен: PostgreSQL никогда не перезаписывает строку — UPDATE создаёт новую версию, а старую помечает мёртвой. VACUUM освобождает место для повторного использования, но не уменьшает файл — это делает VACUUM FULL с эксклюзивной блокировкой. Вторая критическая задача — «заморозка» старых строк, чтобы не допустить переполнения счётчика транзакций (wraparound), способного остановить базу. VACUUM ANALYZE заодно обновляет статистику планировщика. Раздувание (bloat) — частая причина необъяснимой деградации производительности. Следить за ним можно через pg_stat_user_tables. В PostgreSQL 17+ заметно улучшено потребление памяти при VACUUM.

← Назад к словарю