Thread: table row count

table row count

From
"Martin Hurst"
Date:
Is there a way to get the row count of a user table without doing the?

select count(*) from <table>

which can take some time and even do a table scan if the table has millions
of rows in it.

Are there any system tables or views that hold this value for any given user
table?

-Martin







Re: table row count

From
Bruno Wolff III
Date:
On Sun, Feb 09, 2003 at 00:08:59 -0500,
  Martin Hurst <martinh@ix.netcom.com> wrote:
> Is there a way to get the row count of a user table without doing the?
>
> select count(*) from <table>
>
> which can take some time and even do a table scan if the table has millions
> of rows in it.
>
> Are there any system tables or views that hold this value for any given user
> table?

No. If you are going to do lots of counts relative to inserts and deletes,
you can keep the count in another table and create triggers to update it.

Re: table row count

From
Tom Lane
Date:
"Martin Hurst" <martinh@ix.netcom.com> writes:
> Is there a way to get the row count of a user table without doing the?
> select count(*) from <table>

If this were an easy problem, count() would do it for you ;-)

If you're willing to settle for an approximate answer,
pg_class.reltuples might do.  It's the row count as of the last VACUUM.

            regards, tom lane