Что такое VACUUM в PostgreSQL?
Answer from AI
sobes.tech AI
В PostgreSQL команда VACUUM используется для очистки и оптимизации таблиц. Она удаляет «мертвые» строки, которые остаются после обновлений и удалений, освобождая место и предотвращая рост размера базы данных.
Основные функции VACUUM:
-
Удаление мёртвых строк: PostgreSQL использует MVCC (многоверсионность), поэтому при обновлении или удалении строки старая версия остаётся до тех пор, пока не завершатся все транзакции, которые её видят. VACUUM удаляет эти устаревшие версии.
-
Освобождение пространства: После удаления мёртвых строк VACUUM может освободить место для повторного использования.
-
Обновление статистики: В сочетании с
ANALYZEкоманда помогает планировщику запросов выбирать оптимальные планы.
Есть два основных типа VACUUM:
-
Обычный VACUUM: Выполняется без блокировки таблиц, освобождает место для повторного использования, но не уменьшает физический размер файла.
-
VACUUM FULL: Выполняет полную реорганизацию таблицы, освобождая место на диске, но требует эксклюзивной блокировки таблицы.
Пример использования:
VACUUM;
VACUUM FULL books;
Регулярное выполнение VACUUM важно для поддержания производительности и предотвращения проблем с ростом базы данных.