PostgreSQL 17 VACUUM overhaul: adaptive radix tree removes 1GB cap
PostgreSQL 17 replaces VACUUM's flat array with an adaptive radix tree-based TIDStore, removing the hardcoded 1GB ceiling and cutting memory use up to 20x. In a pganalyze benchmark on 100M rows, index vacuum phases dropped from 9 to 1 and runtime fell from 773s to 619s.
- TIDStore on ART cuts memory from ~600 MB to 35–50 MB for 100M dead tuples
- The 1GB maintenance_work_mem cap no longer truncates autovacuum
- Benchmark: 9 index vacuum phases on PG16 vs 1 on PG17
- VACUUM runtime on 100M rows fell from 773s to 619s
Read next
Hardware