Sobes.tech
Back to questions
Junior — Middle
71

Объясните, что означает команда VACUUM в PostgreSQL и её роль в управлении базой данных

Companies where asked
Рексофт

Answer from AI

sobes.tech AI

Команда VACUUM в PostgreSQL используется для очистки базы данных от «мертвых» строк, которые остаются после обновлений и удалений. В PostgreSQL используется MVCC (многоверсионность), поэтому старые версии строк не удаляются сразу, а остаются для обеспечения согласованности транзакций.

Роль VACUUM:

  • Освобождение места, занятого устаревшими строками, чтобы предотвратить рост размера базы.
  • Обновление статистики для планировщика запросов.
  • Предотвращение переполнения транзакционного идентификатора (XID wraparound), что может привести к ошибкам.

Есть два основных типа VACUUM:

  • VACUUM — освобождает место, но не возвращает его операционной системе.
  • VACUUM FULL — более тяжёлая операция, которая полностью реорганизует таблицу и возвращает место ОС.

Пример использования:

VACUUM;
VACUUM FULL;

Регулярное выполнение VACUUM важно для поддержания производительности и стабильности базы данных.