From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> |
Cc: | Jean-Luc Lachance <jllachan(at)nsd(dot)ca>, pgsql-general(at)postgresql(dot)org |
Subject: | Re: Win2K Questions |
Date: | 2002-11-12 05:06:35 |
Message-ID: | 21215.1037077595@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> writes:
> Jean-Luc Lachance wrote:
>> The index has to be updated anyhow to reflect the new record. Doesn't
>> it?
> Actually no. Index scans can go from the index to the heap, see the
> tuple is dead, and move on to the next one.
More specifically: an UPDATE operation has to insert *new* index entries
pointing at the new version of the row. It does not presently have to
touch the index entries for the prior version of the row. Similarly,
DELETE need not modify index entries at all. To maintain version status
in index entries, both those operations would have to get slower.
(The eventual cleanup of the dead index entries is handled by VACUUM,
which we hope is not critical to interactive performance.)
I also think that Jean-Luc is underestimating the significance of the
index-bloat issue. The primary reason to have an index at all is that
it's much smaller than the table it indexes, and therefore is
considerably cheaper to scan. Increasing the size of index entries
is a fundamental blow to their usefulness.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 2002-11-12 05:09:27 | Re: Win2K Questions |
Previous Message | Bruce Momjian | 2002-11-12 04:31:02 | Re: Win2K Questions |