From: | Heikki Linnakangas <heikki(at)enterprisedb(dot)com> |
---|---|
To: | Mark Mielke <mark(at)mark(dot)mielke(dot)cc> |
Cc: | Simon Riggs <simon(at)2ndquadrant(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Visibility map thoughts |
Date: | 2007-11-06 13:29:03 |
Message-ID: | 47306C1F.4020302@enterprisedb.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Mark Mielke wrote:
> Simon Riggs wrote:
>> On Mon, 2007-11-05 at 09:52 +0000, Heikki Linnakangas wrote:
>> I'm racking my brain trying to think of a query that will benefit from
>> index-only scans without specifically creating covered indexes. Apart
>> from count(*) queries and RI lookups. I can't see RI lookups being much
>> cheaper with this technique, do you see something there
> I'm not sure what RI lookup is. Sorry. :-)
Referential Integrity. For example, if you insert a row to table Child,
that has a foreign key reference to table Parent, a RI trigger is fired
that checks the there's a row in Parent table for that key.
Unfortunately that lookup is done with "FOR SHARE", index-only scan
won't help because we have to go and lock the heap tuple anyway :(.
> My list would be:
> - EXISTS / NOT EXISTS
> - COUNT(*)
Yeah, those are good candidates.
> - Tables that are heavily updated - any case where the index entry often
> maps to a non-visible tuple.
Heavily updated tuples won't benefit from the visibility map, because
the bits in the map will be clear all the time due to the updates.
> Beyond that, yeah, I cannot think of other benefits.
Many-to-many relationships is one example:
CREATE TABLE aa (id INTEGER PRIMARY KEY);
CREATE TABLE bb (id INTEGER PRIMARY KEY);
CREATE TABLE aa_bb (aid INTEGER REFERENCES aa (id), bid INTEGER
REFERENCES bb (id));
The relationship table will usually have indexes in both directions:
CREATE INDEX i_aa_bb_1 ON aa_bb (aid, bid);
CREATE INDEX i_aa_bb_2 ON aa_bb (bid, aid);
And of course people will start adding columns to indexes, to make use
of index-only-scans, once we have the capability.
--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com
From | Date | Subject | |
---|---|---|---|
Next Message | Marko Kreen | 2007-11-06 13:40:22 | Re: Visibility map thoughts |
Previous Message | Heikki Linnakangas | 2007-11-06 13:24:59 | Re: Visibility map thoughts |