pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: manchicken <manchicken@notsosoft.net>
To: pgsql-sql@postgresql.org
Subject: Re: Counting all rows
Date: Sat, 23 Jun 2007 10:13:32 -0500
Message-ID: <200706231013.32458.manchicken@notsosoft.net> (raw)
In-Reply-To: <20070623103856.GE7307@KanotixBox>
References: <adf34c300706230315y43ba92daqf0804b7c377ffd29@mail.gmail.com>
	<20070623103856.GE7307@KanotixBox>

On Saturday 23 June 2007 05:38:56 Andreas Kretschmer wrote:
> Stefan Arentz <stefan.arentz@gmail.com> schrieb:
> > I need to get statistics from a bunch of tables. Simply the number of
> > records in them.
> >
> > The query plan looks like this:
> >
> > => explain select count(id) from stuff;
> >                             QUERY PLAN
> > -------------------------------------------------------------------
> >  Aggregate  (cost=1629.69..1629.70 rows=1 width=8)
> >    ->  Seq Scan on stuff  (cost=0.00..1517.75 rows=44775 width=8)
> >
> > The sequential scan kind of worries me. Is there a better/faster way to
> > do this?
>
> Yes.
>
> A "select count(*) from foo;" enforces a seq. scan. Solutions for this
> are discussed here: http://www.varlena.com/GeneralBits/120.php
>
>
> Andreas

Is there any neat trick for doing this for paging estimates?  It looks like 
the only way to get a result count from a more complex query is to either 
fetch a count first, or to fetch all records and count them in the 
application.

-- 
~ manchicken <><
(A)bort, (R)etry, (I)nfluence with large hammer.
09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0


Please avoid sending me Word or PowerPoint attachments.
See http://www.gnu.org/philosophy/no-word-attachments.html



view thread (4+ messages)

Message-ID: <200706231013.32458.manchicken@notsosoft.net>
Permalink:  ../200706231013.32458.manchicken@notsosoft.net/
Also on:    postgresql.org/message-id/200706231013.32458.manchicken@notsosoft.net

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: manchicken@notsosoft.net
  Subject: Re: Counting all rows
  In-Reply-To: <200706231013.32458.manchicken@notsosoft.net>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox