Sobes.tech
Back to questions
Middle+
2

Что такое VACUUM в PostgreSQL?

Companies where asked
Magnit Tech

Answer from AI

sobes.tech AI

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

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

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

  • VACUUM — обычная очистка, которая освобождает место для повторного использования, но не уменьшает физический размер файлов.
  • VACUUM FULL — более тяжелая операция, которая сжимает таблицу и уменьшает размер файлов на диске, но требует блокировки таблицы.

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

VACUUM my_table;
VACUUM FULL my_table;

Регулярное выполнение VACUUM важно для поддержания производительности и предотвращения проблем с bloating (раздуванием таблиц). В современных версиях PostgreSQL есть autovacuum — автоматический процесс, который запускает VACUUM по расписанию.