Что такое VACUUM в PostgreSQL

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

Ответ

VACUUM — это команда в PostgreSQL для освобождения места, занимаемого «мертвыми» строками (удаленными или обновленными). Она не блокирует таблицу полностью, но может замедлить работу.

Основные варианты:

  • VACUUM — очищает мусор, но не возвращает место ОС (оставляет для повторного использования).
  • VACUUM FULL — перезаписывает таблицу, возвращая место ОС, но блокирует ее на время работы.

Пример:

-- Обычная очистка
VACUUM users;

-- Полная перезапись (осторожно!)
VACUUM FULL users;

Автовакуум включен по умолчанию и автоматически чистит мусор. Ручной VACUUM нужен редко, например, после массового удаления.