
PostgreSQL: autovacuum — когда и почему убирает
Autovacuum срабатывает, когда количество мёртвых кортежей превышает порог: threshold + scale_factor × n_live_tup По умолчанию: 50 + 0.2 × размер_таблицы. Для большой таблицы это слишком много — bloat накапливается быстро. Настроить на уровне таблицы: ALTER TABLE orders SET ( autovacuum_vacuum_scale_factor = 0.01, autovacuum_vacuum_threshold = 100 ); Смотреть когда последний раз убиралось и сколько мёртвых кортежей сейчас: SELECT relname, n_dead_tup, last_autovacuum, last_autoanalyze FROM pg_stat_user_tables ORDER BY n_dead_tup DESC; autovacuum_naptime (по умолчанию 1 мин) — как часто демон проверяет таблицы. На нагруженных базах снизить до 15s. ...








