Peter Geoghegan wrote:
> Index bloat is a general problem that B-Trees have in all other major
> systems, but I think that PostgreSQL has a tendency to allow indexes
> to become progressively more bloated over time, in a way that it often
> can never recover from [1].
Interesting assertion. Many years ago I set to implement btree page
merging[1] from ideas in a 1996 paper[2], though that work never saw the
light of day. Maybe it can be valuable now.
Another thing to consider is indirect indexes, wherein you get less heap
bloat because more updates can become HOT.
If we also allow heap to be pruned from line pointers by walking indexes
to remove specific pointers, instead of requiring indexes to be scanned
whole for the removal, as proposed by Andres, we could get further
along.
[1] https://www.postgresql.org/message-id/20020912235429.4714071a.alvherre@atentus.com
[2] http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.47.9961
--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services