Что будет, если отключить Vacuum в PostgreSQL

«Что будет, если отключить Vacuum в PostgreSQL» — вопрос из категории Базы данных, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Отключение VACUUM в PostgreSQL приведет к накоплению "мертвых" (удаленных или обновленных) строк, что вызовет:

  1. Увеличение размера БД - мертвые строки не освобождаются
  2. Снижение производительности - таблицы становятся фрагментированными
  3. Риск транзакционного wraparound - может привести к остановке БД
  4. Замедление запросов - PostgreSQL должен сканировать больше данных

Пример проблемы:

-- Без VACUUM после множества UPDATE/DELETE
EXPLAIN ANALYZE SELECT * FROM large_table;
-- Покажет увеличенное время выполнения

Для критичных систем используйте autovacuum или настраивайте ручной VACUUM по расписанию.