Skip site navigation (1) Skip section navigation (2)

Re: planner/optimizer question

From: "Gary Doades" <gpd(at)gpdnet(dot)co(dot)uk>
To: pgsql-performance(at)postgresql(dot)org
Subject: Re: planner/optimizer question
Date: 2004-04-28 06:35:41
Message-ID: 408F5ECD.29849.CA91084@localhost (view raw or flat)
Thread:
Lists: pgsql-performance
I know you will shoot me down, but...

Why is there an entry in the index for a row if the row is not valid? 
Wouldn't it be better for the index entry validity to track the row validity. 
If a particular data value for a query (join, where etc.) can be satisfied 
by the index entry itself this would be a big performance gain.

Cheers,
Gary.

On 28 Apr 2004 at 0:27, Tom Lane wrote:

> brad-pgperf(at)duttonbros(dot)com writes:
> > ... Wouldn't the most efficient plan be to scan the index regardless
> > of crm_id because the only columns needed are in the index?
> 
> No.  People coming from other databases often have the misconception
> that queries can be answered by looking only at an index.  That is never
> true in Postgres because row validity info is only stored in the table;
> so we must always visit the table entry to make sure the row is still
> valid/visible for the current query.
> 
> Accordingly, columns added to the index that aren't constrained by the
> WHERE clause are not very useful ...
> 
> 			regards, tom lane
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 8: explain analyze is your friend



In response to

Responses

pgsql-performance by date

Next:From: Christopher Kings-LynneDate: 2004-04-28 07:04:14
Subject: Re: planner/optimizer question
Previous:From: Tom LaneDate: 2004-04-28 04:27:59
Subject: Re: planner/optimizer question

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group