From: | Bruno Wolff III <bruno(at)wolff(dot)to> |
---|---|
To: | Vincent Hikida <vhikida(at)inreach(dot)com> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Indexes? |
Date: | 2004-12-03 17:21:00 |
Message-ID: | 20041203172100.GA5631@wolff.to |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Thu, Dec 02, 2004 at 22:37:38 -0800,
Vincent Hikida <vhikida(at)inreach(dot)com> wrote:
> 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
That is correct, but that part relies only on the part of the index dependent
on toDate.
> 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.
That is not correct. Postgres currently doesn't have a way to skip ahead
on an index scan. So what will happen is that a, b, c, d and will all be
considered and b and d removed by a filter rule.
> 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.
The idea of having a toDate index is good, it is just that having a multicolumn
index doesn't help for this problem. In fact by making the index wider, it
will slow things down.
> Of course I may be mistaken about the data distribution.
The distribution of values is what makes toDate or FromDate a better index
(if any) to use. You may very well be correct that for most people toDate
will more likely be the better index to use.
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2004-12-03 17:27:14 | Re: pgsql8b5 not launching on OSX system start; otherwise OK |
Previous Message | Tom Lane | 2004-12-03 16:42:44 | Re: Is there a way to view a rewritten query? |