Что такое VACUUM в PostgreSQL

Python Senior Без компании
Что такое VACUUM в PostgreSQL
Ответы
VACUUM — это процесс обслуживания в PostgreSQL, который освобождает место, занимаемое "мертвыми" строками (удаленными или обновленными), и обновляет статистику для планировщика запросов. **Основные функции:** - Удаляет "мертвые" строки, делая пространство доступным для повторного использования. - Обновляет статистику, улучшая производительность запросов. - Предотвращает "раздувание" (bloat) таблиц и индексов. **Типы VACUUM:** - `VACUUM` (без FULL) — не блокирует таблицу, освобождает место для повторного использования. - `VACUUM FULL` — перезаписывает таблицу, полностью освобождая место на диске, но блокирует таблицу. **Пример:** ``` -- Обычный VACUUM (не блокирующий) VACUUM ANALYZE users; -- Полная очистка (блокирующая) VACUUM FULL users; ``` **Автоматический VACUUM:** PostgreSQL запускает `autovacuum` фоновым процессом, но иногда ручной вызов полезен для больших таблиц.