Thread: TODO item: Improve speed with indexes

TODO item: Improve speed with indexes

From
"Aleksis Petrov"
Date:
Hi everyone,<br /><br />Regarding the mentioned TODO item, the past discussion as I see from the following thread:<br
/><br/><a
href="http://archives.postgresql.org/pgsql-general/2007-01/msg00879.php">http://archives.postgresql.org/pgsql-general/2007-01/msg00879.php
</a><br/><br /><br />concludes that during vacuum full, the relations' indexes should be recreated via REINDEX, rather
thanupdating them.<br /><br />One solution which I see to this is to simply invoke reindex_relation(), or the lower
levelreindex_index() function somewhere after full_vacuum_rel() routine is done with its work. <br /><br />I prototyped
thisand it does solve the problem of index bloating during vacuum full. However this may not be the best solution since
full_vacuum_relfunction is still updating the relation's indexes. <br /><br /> The other solution could be to not
updatethe indexes at all (just REINDEX it). But this does'nt seem to fit in with the current implementation of
repair_frag()function.<br /><br />What do you all think would be the correct approach to solve this? <br /><br
/>Thanks<br/> 

Re: TODO item: Improve speed with indexes

From
Tom Lane
Date:
"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