Re: count(*) using index scan in "query often, update rarely" environment - Mailing list pgsql-performance

From Tom Lane
Subject Re: count(*) using index scan in "query often, update rarely" environment
Date
Msg-id 3254.1128692552@sss.pgh.pa.us
Whole thread Raw
In response to count(*) using index scan in "query often, update rarely" environment  ("Cestmir Hybl" <cestmirl@freeside.sk>)
Responses Re: count(*) using index scan in "query often, update rarely"
List pgsql-performance
"Cestmir Hybl" <cestmirl@freeside.sk> writes:
> Isn't it possible (and reasonable) for these environments to keep track =
> of whether there is a transaction in progress with update to given table =
> and if not, use an index scan (count(*) where) or cached value =
> (count(*)) to perform this kind of query?

Please read the archives before bringing up such well-discussed issues.

There's a workable-looking design in the archives (pghackers probably)
for maintaining overall table counts in a separate table, with each
transaction adding one row of "delta" information just before it
commits.  I haven't seen anything else that looks remotely attractive.

            regards, tom lane

pgsql-performance by date:

Previous
From: "Lane Van Ingen"
Date:
Subject: Re: Need Some Suggestions
Next
From: "Merlin Moncure"
Date:
Subject: Re: count(*) using index scan in "query often, update rarely" environment