Storing transaction/MVCC info outside of main tuple

From: "Jim C(dot) Nasby" <jim(at)nasby(dot)net>
To: pgsql-hackers(at)postgresql(dot)org
Subject: Storing transaction/MVCC info outside of main tuple
Date: 2003-05-20 00:44:15
Message-ID: 20030520004415.GK40542@flake.decibel.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

This is related to some emails on performance about count(*) being so
slow from a month ago or so...

The issue was that count(*) on something with a unique index should be
able to hit just the index and nothing else, but it can't do this
because it needs to check every tuple to see if it's been deleted.

Would it be worthwhile to store the MVCC transaction info seperately?
This info appears to be either 20 or 26 bytes per tuple, which could be
substantially smaller than the remainer of a row on a wide table.

More interesting would be storing the info in a different format, such
as a listing of rows that info applies to. For OLAP type tables, that
would be a substantial savings.
--
Jim C. Nasby (aka Decibel!) jim(at)nasby(dot)net
Member: Triangle Fraternity, Sports Car Club of America
Give your computer some brain candy! www.distributed.net Team #1828

Windows: "Where do you want to go today?"
Linux: "Where do you want to go tomorrow?"
FreeBSD: "Are you guys coming, or what?"

Browse pgsql-hackers by date

  From Date Subject
Next Message Christopher Kings-Lynne 2003-05-20 02:42:58 Re: Heads up: 7.3.3 this Wednesday
Previous Message Jim C. Nasby 2003-05-20 00:33:03 Re: ERROR: Memory exhausted in AllocSetAlloc(188)