Re: Vacuum only with 20% old tuples
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Bruce Momjian <pgman@candle.pha.pa.us>
Cc: PostgreSQL-development <pgsql-hackers@postgreSQL.org>
Date: 2000-07-12T02:06:54Z
Lists: pgsql-hackers
Bruce Momjian <pgman@candle.pha.pa.us> writes: > I suggest that we change vacuum to only move remove tuples if there is > more than 20% expired tuples. > When we do vacuum, we drop all indexes and recreate them. > This fixes the complaint about vacuum slowness when there are many > expired rows in the table. We know this is causes by excessive index > updates. It allows indexes to shrink (Jan pointed this out to me.) And > it fixes the TOAST problem with TOAST values in indexes. We can't "drop and recreate" without a solution to the relation versioning issue (unless you are prepared to accept a nonfunctional database after a failure partway through index rebuild on a system table). I think we should do this, but it's not all that simple... I do not see what your 20% idea has to do with this, though, nor why it's a good idea. If I've told the thing to vacuum I think it should vacuum. 20% of a big table could be a lot of megabytes, and I don't want some arbitrary decision in the code about whether I can reclaim that space or not. regards, tom lane