PostgreSQL не удаляет строки сразу при
DELETE или UPDATE. Вместо этого они помечаются как "мертвые", а данные продолжают занимать место. Со временем таблицы раздуваются, индексы тормозят, запросы тянут ресурсы.⠀
💡 VACUUM - инструмент для уборки "мусора" и поддержания БД в форме.
Варианты:
VACUUM — убирает мусор, но не возвращает место ОС.VACUUM FULL — перезаписывает таблицу и реально освобождает диск (но блокирует таблицу!).ANALYZE — обновляет статистику планировщика запросов.VACUUM ANALYZE — два в одном: чистка + статистика.Когда запускать вручную?
– Если
autovacuum не справляется (часто видно по pg_stat_user_tables).– После больших батчевых удалений/обновлений.
– Перед бэкапом (особенно
VACUUM FULL для экономии места).⠀
Пример:
VACUUM VERBOSE my_table;
VACUUM FULL my_table;
Лайфхаки:
Не злоупотребляй
FULL — он тяжёлый.Настрой
autovacuum под нагрузки: autovacuum_vacuum_threshold, autovacuum_vacuum_scale_factor и т.д.Следи за bloating:
pgstattuple и pg_bloat_check.👉 VACUUM — не уборка по графику, а гигиена твоей БД. Запустишь вовремя - не будет проблем с производительностью.
Сохрани, чтобы не забыть 💾
📲 Мы в MAX
#db
👉 @database_info
