Re: Performance of count(*) - Mailing list pgsql-performance

From Michael Stone
Subject Re: Performance of count(*)
Date
Msg-id 20070322144149.GF11402@mathom.us
Whole thread Raw
In response to Re: Performance of count(*)  ("Merlin Moncure" <mmoncure@gmail.com>)
List pgsql-performance
On Thu, Mar 22, 2007 at 09:39:18AM -0400, Merlin Moncure wrote:
>You can get the approximate count by selecting reltuples from
>pg_class.  It is valid as of last analyze.

Of course, that only works if you're not using any WHERE clause.
Here's a (somewhat ugly) example of getting an approximate count based
off the statistics info, which will work for more complicated queries:
http://archives.postgresql.org/pgsql-sql/2005-08/msg00046.php
The ugliness is that you have to provide the whole query as a
parameter to the function, instead of using it as a drop-in replacement
for count. I assume that the TODO item is to provide the latter, but for
now this method can be useful for UI type stuff where you just want to
know whether there's "a little" or "a lot".

Mike Stone

pgsql-performance by date:

Previous
From: Michael Fuhr
Date:
Subject: Re: Performance of count(*)
Next
From: "Luke Lonergan"
Date:
Subject: Re: Performance of count(*)