TODO item: Improve speed with indexes

Started by Aleksis Petrovabout 19 years ago2 messageshackers
Jump to latest
#1Aleksis Petrov
a.aleksis@gmail.com

Hi everyone,

Regarding the mentioned TODO item, the past discussion as I see from the
following thread:

http://archives.postgresql.org/pgsql-general/2007-01/msg00879.php

concludes that during vacuum full, the relations' indexes should be
recreated via REINDEX, rather than updating them.

One solution which I see to this is to simply invoke reindex_relation(), or
the lower level reindex_index() function somewhere after full_vacuum_rel()
routine is done with its work.

I prototyped this and it does solve the problem of index bloating during
vacuum full. However this may not be the best solution since full_vacuum_rel
function is still updating the relation's indexes.

The other solution could be to not update the indexes at all (just REINDEX
it). But this does'nt seem to fit in with the current implementation of
repair_frag() function.

What do you all think would be the correct approach to solve this?

Thanks

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Aleksis Petrov (#1)
Re: TODO item: Improve speed with indexes

"Aleksis Petrov" <a.aleksis@gmail.com> writes:

The other solution could be to not update the indexes at all (just REINDEX
it). But this does'nt seem to fit in with the current implementation of
repair_frag() function.

Considerably more to the point: what happens if VACUUM fails partway
through (ie, before it can complete the reindexing)?

regards, tom lane