PFC wrote:
> So, here is something annoying with the current approach : Updating rows
> in a table bloats ALL indices, not just those whose indexed values have
> been actually updated. So if you have a table with many indexed fields and
> you often update some obscure timestamp field, all the indices will bloat,
> which will of course be corrected by VACUUM, but vacuum will have extra
> work to do.
The MVCC approach probably doesn't leave you with many choices here.
The index entries point directly to the rows in the table, and since
an update creates a new row (it's the equivalent of doing an insert
then a delete), all indexes have to be updated to reflect the location
of the new row.
Unless my understanding of how this works is completely off...
--
Kevin Brown kevin@sysexperts.com