Re: Checking = with timestamp field is slow

From: Michael Fuhr <mike(at)fuhr(dot)org>
To: Christopher Browne <cbbrowne(at)acm(dot)org>
Cc: pgsql-performance(at)postgresql(dot)org
Subject: Re: Checking = with timestamp field is slow
Date: 2004-11-05 17:45:34
Message-ID: 20041105174534.GA685@winnie.fuhr.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

On Fri, Nov 05, 2004 at 07:47:54AM -0500, Christopher Browne wrote:
>
> How about changing the criterion to:
>
> where today between '2004-11-05' and '2004-11-06';
>
> That ought to make use of the index on "today".

Yes it should, but it'll also return records that have a "today"
value of '2004-11-06 00:00:00' since "x BETWEEN y AND z" is equivalent
to "x >= y AND x <= z". Try this instead:

WHERE today >= '2004-11-05' AND today < '2004-11-06'

In another post I suggested creating an index on DATE(today). The
above query should make that unnecessary, although in 8.0 such an
index would be used in queries like this:

WHERE today IN ('2004-09-01', '2004-10-01', '2004-11-01');

--
Michael Fuhr
http://www.fuhr.org/~mfuhr/

In response to

Browse pgsql-performance by date

  From Date Subject
Next Message Bruno Wolff III 2004-11-05 17:51:59 Re: Strange (?) Index behavior?
Previous Message Allen Landsidel 2004-11-05 16:54:02 Re: Strange (?) Index behavior?