Re: No index maximum? (was Re: No merge sort?)

From: Bruno Wolff III <bruno(at)wolff(dot)to>
To: Taral <taral(at)taral(dot)net>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: No index maximum? (was Re: No merge sort?)
Date: 2003-03-15 15:23:28
Message-ID: 20030315152328.GA6412@wolff.to
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Fri, Mar 14, 2003 at 14:19:46 -0600,
Taral <taral(at)taral(dot)net> wrote:
> Same setup, different query:
>
> test=> explain select max(time) from test where id = '1';
> NOTICE: QUERY PLAN:
>
> Aggregate (cost=5084.67..5084.67 rows=1 width=0)
> -> Index Scan using idx on test (cost=0.00..5081.33 rows=1333 width=0)
>
> Since the index is (id, time), why isn't the index being used to
> retrieve the maximum value?

It looks like an index scan is being done.

If the index was on (time, id) instead of (id, time), then you could get
a further speed up by rewriting the query as:
select time from test where id = '1' order by time desc limit 1;

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2003-03-15 16:46:20 Re: Error message style guide
Previous Message Emmanuel Charpentier 2003-03-15 08:27:13 Re: Roadmap for FE/BE protocol redesign