Skip to content

Vacuuming

Complete dossiers for 34 core PostgreSQL settings in Vacuuming.

Dossier URLs remain flat; this category exists only to organize browsing and the sidebar.

autovacuum

Autovacuum keeps MVCC tables usable by scheduling background VACUUM and ANALYZE work. It is both a performance mechanism and a wraparound safety net, not optional cosmetic housekeeping.

autovacuum_analyze_scale_factor

autovacuum_analyze_scale_factor — Number of tuple inserts, updates, or deletes prior to analyze as a fraction of reltuples. Observed in PG9.0–19 Beta 3; its last measured boot default is 0.1 in PG19 Beta 3, with sighup context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

autovacuum_analyze_score_weight

autovacuum_analyze_score_weight — Scaling factor of analyze score for autovacuum prioritization. Observed in PG19 Beta 3; its last measured boot default is 1 in PG19 Beta 3, with sighup context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

autovacuum_analyze_threshold

autovacuum_analyze_threshold — Minimum number of tuple inserts, updates, or deletes prior to analyze. Observed in PG9.0–19 Beta 3; its last measured boot default is 50 in PG19 Beta 3, with sighup context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

autovacuum_freeze_max_age

autovacuum_freeze_max_age — Age at which to autovacuum a table to prevent transaction ID wraparound. Observed in PG9.0–19 Beta 3; its last measured boot default is 200000000 in PG19 Beta 3, with postmaster context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

autovacuum_freeze_score_weight

autovacuum_freeze_score_weight — Scaling factor of freeze score for autovacuum prioritization. Observed in PG19 Beta 3; its last measured boot default is 1 in PG19 Beta 3, with sighup context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

autovacuum_max_parallel_workers

autovacuum_max_parallel_workers — Maximum number of parallel workers that can be used by a single autovacuum worker. Observed in PG19 Beta 3; its last measured boot default is 0 in PG19 Beta 3, with sighup context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

autovacuum_max_workers

Sets the cluster-wide ceiling for concurrently running autovacuum workers, excluding the launcher. More workers improve scheduling capacity, but they also increase concurrent maintenance demand.

autovacuum_multixact_freeze_max_age

autovacuum_multixact_freeze_max_age — Multixact age at which to autovacuum a table to prevent multixact wraparound. Observed in PG9.3–19 Beta 3; its last measured boot default is 400000000 in PG19 Beta 3, with postmaster context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

autovacuum_multixact_freeze_score_weight

autovacuum_multixact_freeze_score_weight — Scaling factor of multixact freeze score for autovacuum prioritization. Observed in PG19 Beta 3; its last measured boot default is 1 in PG19 Beta 3, with sighup context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

autovacuum_naptime

autovacuum_naptime — Time to sleep between autovacuum runs. Observed in PG9.0–19 Beta 3; its last measured boot default is 1 min in PG19 Beta 3, with sighup context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

autovacuum_vacuum_cost_delay

autovacuum_vacuum_cost_delay — Vacuum cost delay in milliseconds, for autovacuum. Observed in PG9.0–19 Beta 3; its last measured boot default is 2 ms in PG19 Beta 3, with sighup context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

autovacuum_vacuum_cost_limit

autovacuum_vacuum_cost_limit — Vacuum cost amount available before napping, for autovacuum. Observed in PG9.0–19 Beta 3; its last measured boot default is -1 in PG19 Beta 3, with sighup context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

autovacuum_vacuum_insert_scale_factor

autovacuum_vacuum_insert_scale_factor sets the number of tuple inserts prior to vacuum as a fraction of reltuples. It is a sighup setting present in PG13–18; the latest recorded boot default is 0.2.

autovacuum_vacuum_insert_score_weight

autovacuum_vacuum_insert_score_weight — Scaling factor of vacuum insert score for autovacuum prioritization. Observed in PG19 Beta 3; its last measured boot default is 1 in PG19 Beta 3, with sighup context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

autovacuum_vacuum_insert_threshold

autovacuum_vacuum_insert_threshold sets the minimum number of tuple inserts prior to vacuum. It is a sighup setting present in PG13–18; the latest recorded boot default is 1000.

autovacuum_vacuum_max_threshold

autovacuum_vacuum_max_threshold — Maximum number of tuple updates or deletes prior to vacuum. Observed in PG18–19 Beta 3; its last measured boot default is 100000000 in PG19 Beta 3, with sighup context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

autovacuum_vacuum_scale_factor

Controls the table-size-proportional part of the normal autovacuum VACUUM trigger. Lower values make large tables eligible after a smaller fraction of rows becomes obsolete.

autovacuum_vacuum_score_weight

autovacuum_vacuum_score_weight — Scaling factor of vacuum score for autovacuum prioritization. Observed in PG19 Beta 3; its last measured boot default is 1 in PG19 Beta 3, with sighup context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

autovacuum_vacuum_threshold

autovacuum_vacuum_threshold — Minimum number of tuple updates or deletes prior to vacuum. Observed in PG9.0–19 Beta 3; its last measured boot default is 50 in PG19 Beta 3, with sighup context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

autovacuum_worker_slots

autovacuum_worker_slots — Sets the number of backend slots to allocate for autovacuum workers. Observed in PG18–19 Beta 3; its last measured boot default is 16 in PG19 Beta 3, with postmaster context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

vacuum_cost_delay

vacuum_cost_delay — Vacuum cost delay in milliseconds. Observed in PG9.0–19 Beta 3; its last measured boot default is 0 ms in PG19 Beta 3, with user context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

vacuum_cost_limit

vacuum_cost_limit — Vacuum cost amount available before napping. Observed in PG9.0–19 Beta 3; its last measured boot default is 200 in PG19 Beta 3, with user context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

vacuum_cost_page_dirty

vacuum_cost_page_dirty — Vacuum cost for a page dirtied by vacuum. Observed in PG9.0–19 Beta 3; its last measured boot default is 20 in PG19 Beta 3, with user context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

vacuum_cost_page_hit

vacuum_cost_page_hit — Vacuum cost for a page found in the buffer cache. Observed in PG9.0–19 Beta 3; its last measured boot default is 1 in PG19 Beta 3, with user context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

vacuum_cost_page_miss

vacuum_cost_page_miss — Vacuum cost for a page not found in the buffer cache. Observed in PG9.0–19 Beta 3; its last measured boot default is 2 in PG19 Beta 3, with user context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

vacuum_failsafe_age

vacuum_failsafe_age sets the age at which VACUUM should trigger failsafe to avoid a wraparound outage. It is a user setting present in PG14–18; the latest recorded boot default is 1600000000.

vacuum_freeze_min_age

vacuum_freeze_min_age — Minimum age at which VACUUM should freeze a table row. Observed in PG9.0–19 Beta 3; its last measured boot default is 50000000 in PG19 Beta 3, with user context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

vacuum_freeze_table_age

vacuum_freeze_table_age — Age at which VACUUM should scan whole table to freeze tuples. Observed in PG9.0–19 Beta 3; its last measured boot default is 150000000 in PG19 Beta 3, with user context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

vacuum_max_eager_freeze_failure_rate

vacuum_max_eager_freeze_failure_rate — Fraction of pages in a relation vacuum can scan and fail to freeze before disabling eager scanning. Observed in PG18–19 Beta 3; its last measured boot default is 0.03 in PG19 Beta 3, with user context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

vacuum_multixact_failsafe_age

vacuum_multixact_failsafe_age sets the multixact age at which VACUUM should trigger failsafe to avoid a wraparound outage. It is a user setting present in PG14–18; the latest recorded boot default is 1600000000.

vacuum_multixact_freeze_min_age

vacuum_multixact_freeze_min_age — Minimum age at which VACUUM should freeze a MultiXactId in a table row. Observed in PG9.3–19 Beta 3; its last measured boot default is 5000000 in PG19 Beta 3, with user context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

vacuum_multixact_freeze_table_age

vacuum_multixact_freeze_table_age — Multixact age at which VACUUM should scan whole table to freeze tuples. Observed in PG9.3–19 Beta 3; its last measured boot default is 150000000 in PG19 Beta 3, with user context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

vacuum_truncate

vacuum_truncate — Enables vacuum to truncate empty pages at the end of the table. Observed in PG18–19 Beta 3; its last measured boot default is on in PG19 Beta 3, with user context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.