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