Re: index on timestamp performance

From: Eric Cholet <cholet(at)logilune(dot)com>
To: Stephan Szabo <sszabo(at)megazone23(dot)bigpanda(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: index on timestamp performance
Date: 2003-01-30 11:54:32
Message-ID: 55900000.1043927672@shambala.logilune.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

--On Wednesday, January 29, 2003 10:45:34 -0800 Stephan Szabo
<sszabo(at)megazone23(dot)bigpanda(dot)com> wrote:

>
>> >> motid | integer | not null
>> >> objid | integer | not null
>> >> date | timestamp without time zone | not null
>> >> Indexes: dico_frs_motid_date btree (motid, date)
>> >> dico_frs_objid btree (objid)
>> >>

> Well, I was wondering for example, the objid queries you were comparing
> to, were they returning an equivalent number of about 3000 rows from the
> index scan? I think part of the difference may be that here the plan
> grabs the rows from the index and then sorts them all so the limit doesn't
> actually save you significant time. For better speed on this particular
> sort of query, you might be better off with an order of :
> order by motid desc, date desc

Indeed, the speed gain is amazing, thanks for your explanation, I understand
things a little better now. Note to self: next time don't make any
assumptions,
just post the explain analyze!

>> => explain analyze select objid from dico_frs where motid=1247
>> and date <= '2003-01-29 17:55:17' and date >= '2002-10-29 17:55:17'
>> order by date desc limit 11;
>>
>> Limit (cost=4752.14..4752.17 rows=11 width=12) (actual
>> time=63.20..63.37 rows=11 loops=1)
>> -> Sort (cost=4752.14..4755.11 rows=1187 width=12) (actual
>> time=63.17..63.23 rows=12 loops=1)
>> Sort Key: date
>> -> Index Scan using dico_frs_motid_date on dico_frs
>> (cost=0.00..4691.50 rows=1187 width=12) (actual time=0.08..41.88
>> rows=2924 loops=1)
>> Index Cond: ((motid = 1247) AND (date <= '2003-01-29
>> 17:55:17'::timestamp without time zone) AND (date >= '2002-10-29
>> 17:55:17'::timestamp without time zone))
>> Total runtime: 63.93 msec
>> (6 rows)

--
Eric Cholet

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Renê Salomão 2003-01-30 13:09:40 Weird Behavior!!!
Previous Message Peter Gibbs 2003-01-30 10:51:18 Re: 'GROUP BY' problem