Re: Slow counting still true? - Mailing list pgsql-general

From Jeff Janes
Subject Re: Slow counting still true?
Date
Msg-id CAMkU=1wwtVEPM0BuhdEYzHezknK3=6FR2M_uFk3hWMquYjx+ng@mail.gmail.com
Whole thread Raw
In response to Re: Slow counting still true?  (Edson Richter <edsonrichter@hotmail.com>)
Responses Re: Slow counting still true?  (Edson Richter <edsonrichter@hotmail.com>)
List pgsql-general
On Mon, Sep 17, 2012 at 9:14 AM, Edson Richter <edsonrichter@hotmail.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


pgsql-general by date:

Previous
From: Jeff Janes
Date:
Subject: Re: Index creation takes more time?
Next
From: Mike Christensen
Date:
Subject: Re: Column aliases in WHERE clauses