Re: Slow plan for MAX/MIN or LIMIT 1?

Поиск
Список
Период
Сортировка
От Merlin Moncure
Тема Re: Slow plan for MAX/MIN or LIMIT 1?
Дата
Msg-id CAHyXU0y+bt-B9Bv2vhPEMNnsm7805PBm89wba21mkU-vA+YTCA@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Slow plan for MAX/MIN or LIMIT 1?  (Claudio Freire <klaussfreire@gmail.com>)
Ответы Re: Slow plan for MAX/MIN or LIMIT 1?  ("Sam Wong" <sam@hellosam.net>)
Re: Slow plan for MAX/MIN or LIMIT 1?  (Claudio Freire <klaussfreire@gmail.com>)
Список pgsql-performance
On Wed, Sep 25, 2013 at 10:20 AM, Claudio Freire <klaussfreire@gmail.com> wrote:
> On Wed, Sep 25, 2013 at 10:29 AM, Merlin Moncure <mmoncure@gmail.com> wrote:
>> On Tue, Sep 24, 2013 at 4:56 PM, Claudio Freire <klaussfreire@gmail.com> wrote:
>>> On Tue, Sep 24, 2013 at 6:24 AM, Sam Wong <sam@hellosam.net> wrote:
>>>> This event_log table has 4 million rows.
>>>>
>>>> “log_id” is the primary key (bigint),
>>>>
>>>> there is a composite index “event_data_search” over (event::text,
>>>> insert_time::datetime).
>>>
>>>
>>> I think you need to add log_id to that composite index to get pg to use it.
>>
>> hurk: OP is two statistics misses (one of them massive that are
>> combing to gobsmack you).
>>
>> your solution unfortuantely wont work: you can't combine two range
>> searches in a single index scan.  it would probably work if you it
>> like this.  If insert_time is a timestamp, not a timestamptz, we can
>> convert it to date to get what I think he wants (as long as his
>> queries are along date boundaries).
>
>
> I was thinking an index over:
>
> (event, date_trunc('day', insert_time), log_id)
>
> And the query like
>
> SELECT min(log_id) FROM event_log
> WHERE event='S-Create' AND
> date_trunc('day',insert_time) = '2013-09-15'
>
>
> That's a regular simple range scan over the index.

*) date_trunc has same problems as ::date: it is stable expression
only for timestamptz.  also, the index will be bigger since you're
still indexing timestamp

*) row wise comparison search might be faster and is generalized to
return N records, not jut one.

merlin


В списке pgsql-performance по дате отправления:

Предыдущее
От: Claudio Freire
Дата:
Сообщение: Re: Slow plan for MAX/MIN or LIMIT 1?
Следующее
От: Jim Garrison
Дата:
Сообщение: Troubleshooting query performance issues