| From: | Mark Williams <mark(dot)williams(at)jivesoftware(dot)com> |
|---|---|
| To: | |
| Cc: | "pgsql-performance(at)postgresql(dot)org" <pgsql-performance(at)postgresql(dot)org> |
| Subject: | Re: Bad Query Plan with Range Query |
| Date: | 2011-04-15 22:29:10 |
| Message-ID: | 4DA8C6B6.3030702@jivesoftware.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-performance |
Whoops,
I meant this query (ordering my messageid):
SELECT messageID FROM Message WHERE modificationDate>= 1302627793988 ORDER BY messageID LIMIT 1;
Sometimes this gives the better plan. But not always.
On 04/15/2011 11:13 AM, Kevin Grittner wrote:
> Mark Williams<mark(dot)williams(at)jivesoftware(dot)com> wrote:
>
>> If I re-write the query like this:
>>
>> explain SELECT messageID FROM Message WHERE modificationDate>=
>> 1302627793988 ORDER BY modificationDate LIMIT 1;
>
>> I also get a better plan.
>
> Yeah, but it's not necessarily the same value. Do you want the
> minimum messageID where modificationDate>= 1302627793988 or do you
> want the messageID of some row (possibly of many) with the minimum
> modificationDate where modificationDate>= 1302627793988?
>
> Since you're asking for a logically different value with that query,
> it's not surprising it uses a different plan.
>
> -Kevin
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Phoenix Kiula | 2011-04-17 15:30:30 | Re: REINDEX takes half a day (and still not complete!) |
| Previous Message | Kevin Grittner | 2011-04-15 18:13:26 | Re: Bad Query Plan with Range Query |