Re: [HACKERS] Group by, count, order by and limit - Mailing list pgsql-general

From Bruno Wolff III
Subject Re: [HACKERS] Group by, count, order by and limit
Date
Msg-id 20030218133512.GA11307@wolff.to
Whole thread Raw
List pgsql-general
On Tue, Feb 18, 2003 at 10:26:46 +0600,
  Anuradha Ratnaweera <anuradha@lklug.pdn.ac.lk> wrote:
>
> My 3rd attempt to post ...
>
> Consider this query on a large table with lots of different IDs:
>
>     SELECT id FROM my_table GROUP BY id ORDER BY count(id) LIMIT 10;
>
> It has an index on id.  Obviously, the index helps to evaluate count(id)
> for a given value of id, but count()s for all the `id's should be
> evaluated, so sort() will take most of the time.
>
> Is there a way to improve performance of this query?  If not, please
> give some indication to do a workaround on the source itself, so perhaps
> I may be able to come out with a patch.

In 7.4 there is a hash method that can be used for aggregates. This
may help a lot in your case if there aren't a lot of distict IDs.
7.4 is a long way from even a beta, but you still might want to play with
it to see if it will solve your problem down the road.

pgsql-general by date:

Previous
From: "Shridhar Daithankar"
Date:
Subject: Handling users
Next
From: "Colin Mangiagalli"
Date:
Subject: Re: Transaction Logs Recycling Problem