Что такое autovacuum в PostgreSQL и как он работает | PGLens.

Что такое autovacuum в PostgreSQL

Autovacuum – фоновый механизм PostgreSQL, который автоматически запускает очистку таблиц и обновление статистики планировщика. Он нужен из-за многоверсионной модели хранения: при изменении или удалении строки прежняя версия остается в файле таблицы и занимает место, пока не будет освобождена процедурой очистки.

Какие задачи решает autovacuum

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

Как устроен

Фоновый процесс периодически просматривает базы и назначает обработку таблицам, в которых число измененных строк превысило порог. Порог складывается из фиксированной части autovacuum_vacuum_threshold и доли от размера таблицы autovacuum_vacuum_scale_factor. Проверить факт и время последнего прохода можно так:

SELECT relname, last_autovacuum, autovacuum_count
FROM pg_stat_user_tables
ORDER BY last_autovacuum;

Бесплатный 7‑дневный аудит PostgreSQL с PGLens

PGLens остается у вас для полноценного тестирования еще до 90 дней БЕСПЛАТНО

    Напишите нам
    Удобнее с телефона?
    Сканируйте QR