/explain/fillfactor

fillfactor

fillfactor is a table storage parameter: inserts stop filling a page when it is this percent full (default 100). The reserved remainder is not waste, it is the free space that lets an update stay on the same page, which is the second condition for a HOT update. On update-heavy tables a fillfactor of 90 trades 10% larger heap for a much higher HOT rate and far fewer index writes. It applies to newly written pages, so changing it needs a rewrite to affect existing data.

DEMO — one heap page, 3 indexes8 slots per page
live
live
live
live
live
live
live
live
fillfactor100
default 100 · below 100 leaves page space for HOT updates (resets the page)
HOT RATE
0%
HEAP PAGES
1
INDEX WRITES
0
SEE ALSO
HOT updatebloat← back to start
Set it per table: ALTER TABLE t SET (fillfactor = 90). Append-only tables should keep 100: reserving space for updates that never come is pure bloat.
fillfactor — robovac