Re: Slow counting still true?

From: Jeff Janes <jeff(dot)janes(at)gmail(dot)com>
To: Edson Richter <edsonrichter(at)hotmail(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Slow counting still true?
Date: 2012-09-18 18:24:51
Message-ID: CAMkU=1wwtVEPM0BuhdEYzHezknK3=6FR2M_uFk3hWMquYjx+ng@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Mon, Sep 17, 2012 at 9:14 AM, Edson Richter <edsonrichter(at)hotmail(dot)com> wrote:

> The wiki page in question has been updated today, and I see the alert in top
> of page "Note that the following article only applies to versions of
> PostgreSQL prior to 9.2. Index-only scans are now implemented."
>
> So seems that traversing indexes for count(*) would be faster on 9.2, right?

Not really, as it still needs to visit some representation of every
tuple. Now, if the entire index in is RAM while the table would not
be, it could be a lot faster. But that is more of a special case than
a general one.

> AFAIK, for count(*) doesn't matter the order data is stored - just need to
> load index leaf pages and count from there, right?

That would only work if there was no concurrent activity. If someone
else splits on index page, some of the entries on that page could move
to a location where they would get visited either zero times or two
times.

Cheers,

Jeff

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Mike Christensen 2012-09-18 18:27:15 Re: Column aliases in WHERE clauses
Previous Message Eden Cardim 2012-09-18 18:20:31 Re: Column aliases in WHERE clauses