Re: Indexes? - Mailing list pgsql-general

From Vincent Hikida
Subject Re: Indexes?
Date
Msg-id 003501c4d902$9543b160$6501a8c0@HOMEOFFICE
Whole thread Raw
In response to Indexes?  (Bjørn T Johansen <btj@havleik.no>)
Responses Re: Indexes?
List pgsql-general
Perhaps I'm missing something but let's say that the index has the
following:

toDate           fromDate
1992-03-02  1991-01-23
1992-04-03  1990-06-13
1993-05-03  1991-01-22
...
...
...
2004-12-01  2003-02-22
2005-03-04  2003-02-22          (a)
2005-03-05  2004-12-15          (b)
2005-03-05  2004-06-18          (c)
2007-04-12  2005-06-18          (d)

Let's say that there are a million entries where the toDate is less than
today 2004-12-02. That is less than (a) in the index. From the index then
only a, b, c, and d should be scanned further. a and c would be picked based
on the index values because 2004-12-02 is between the from and end date.
However, b and d would be excluded immediately because the the from date is
greater than 2004-12-02 and would save the optimizer from even reading the
table for these index entries because the fromDate is in the index.

This may be a somewhat extreme example but my experience is in most systems
old historical data makes up the bulk of the data and newer data is a much
smaller amount. In addition most people are interested in data from the most
recent month.

Of course I may be mistaken about the data distribution.

Vincent
----- Original Message -----
From: "Bruno Wolff III" <bruno@wolff.to>
To: "Vincent Hikida" <vhikida@inreach.com>
Cc: <pgsql-general@postgresql.org>
Sent: Thursday, December 02, 2004 12:10 PM
Subject: Re: [GENERAL] Indexes?


> On Wed, Dec 01, 2004 at 23:16:48 -0800,
>  Vincent Hikida <vhikida@inreach.com> wrote:
>> I believe that it is better to have a concatenated key of
>> (toDate,FromDate). The reason the toDate should come first is that for
>> more
>> "recent" records, finding curDates less than toDate is much more
>> selective
>> than finding curDates greater than fromDate. Actually I'm not sure if
>> fromDate is that helpful either as part of the concatenated key (it
>> probably depends) but definitely not by itself.
>
> I combined index won't be very useful for the kind of search he is doing.
> And not having an index on FromDate could hurt in some cases depending
> on the distribution of values.
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
>    (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
>


pgsql-general by date:

Previous
From: Thomas F.O'Connell
Date:
Subject: Re: pgFoundary?
Next
From: "Jim C. Nasby"
Date:
Subject: Re: pgFoundary?