Index bloat is a silent tax on both latency and storage. Teams often notice it only after cache hit ratio starts drifting.
Start with Table Behavior
If updates touch indexed columns frequently, bloat compounds quickly.
ALTER TABLE orders SET (fillfactor = 75);
REINDEX INDEX CONCURRENTLY idx_orders_status_updated_at;Tuning Pattern
- Lower fillfactor on high-churn tables.
- Prefer HOT updates by minimizing unnecessary indexed columns.
- Schedule rolling concurrent reindex for top offenders.
The goal is not zero bloat. The goal is controlled, predictable bloat.