Ответ
VACUUM — это ручная команда для очистки "мертвых" строк (удаленных или обновленных) в таблицах PostgreSQL, освобождающая место для повторного использования, но не возвращающая его ОС.
AUTOVACUUM — автоматический процесс, который периодически запускает VACUUM и ANALYZE для поддержания производительности БД без ручного вмешательства.
Ключевые отличия:
- Ручной vs автоматический —
VACUUMтребует явного вызова,AUTOVACUUMработает в фоне. - Гибкость —
VACUUMможно настроить точечно (например,VACUUM FULLдля возврата памяти ОС),AUTOVACUUMуправляется параметрами конфигурации.
Пример ручного VACUUM:
VACUUM ANALYZE users; -- Очистка и сбор статистики для таблицы users
Настройка AUTOVACUUM:
ALTER TABLE users SET (autovacuum_enabled = true, autovacuum_vacuum_scale_factor = 0.1);