Re: count(*) slow on large tables

Tomasz Myrta <jasiek@klaster.net>

From: Tomasz Myrta <jasiek@klaster.net>
To: Dror Matalon <dror@zapatec.com>
Cc: "pgsql-performance@postgresql.org" <pgsql-performance@postgresql.org>
Date: 2003-10-02T19:36:42Z
Lists: pgsql-hackers, pgsql-performance
> Hi,
> 
> I have a somewhat large table, 3 million rows, 1 Gig on disk,  and growing. Doing a
> count(*) takes around 40 seconds.
> 
> Looks like the count(*) fetches the table from disk and goes through it.
> Made me wonder, why the optimizer doesn't just choose the smallest index
> which in my case is around 60 Megs and goes through it, which it could
> do in a fraction of the time.
> 
> Dror

Just like other aggregate functions, count(*) won't use indexes when 
counting whole table.

Regards,
Tomasz Myrta