Sobes.tech
Назад к вопросам
Senior
6

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

Компании, где спрашивали
сбер платформ в

Ответ от нейросети

sobes.tech AI

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

Основные функции VACUUM:

  • Удаление мёртвых строк: PostgreSQL использует MVCC (многоверсионность), поэтому при обновлении или удалении строки старая версия остаётся до тех пор, пока не завершатся все транзакции, которые её видят. VACUUM удаляет эти устаревшие версии.

  • Освобождение пространства: После удаления мёртвых строк VACUUM может освободить место для повторного использования.

  • Обновление статистики: В сочетании с ANALYZE команда помогает планировщику запросов выбирать оптимальные планы.

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

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

  • VACUUM FULL: Выполняет полную реорганизацию таблицы, освобождая место на диске, но требует эксклюзивной блокировки таблицы.

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

VACUUM;
VACUUM FULL books;

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