Re: [RFC] speed up count(*)

From: Joe Conway <mail(at)joeconway(dot)com>
To: Robert Haas <robertmhaas(at)gmail(dot)com>
Cc: John Naylor <john(dot)naylor(at)enterprisedb(dot)com>, Tomas Vondra <tomas(dot)vondra(at)enterprisedb(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: [RFC] speed up count(*)
Date: 2021-10-21 20:19:05
Message-ID: 0fb27154-ee62-9dc1-52a7-7e6d1b5b628d@joeconway.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 10/21/21 4:06 PM, Robert Haas wrote:
> On Thu, Oct 21, 2021 at 9:09 AM Joe Conway <mail(at)joeconway(dot)com> wrote:
>> I think you are exactly correct. People seem to understand that with a
>> predicate it is harder, but they expect
>>
>> select count(*) from foo;
>>
>> to be nearly instantaneous, and they don't really need it to be exact.
>> The stock answer for that has been to do
>>
>> select reltuples from pg_class
>> where relname = 'foo';
>>
>> But that is unsatisfying because the problem is often with some
>> benchmark or another that cannot be changed.
>
> I would also expect it to almost always give the wrong answer.

That is a grossly overstated position. When I have looked, it is often
not that terribly far off. And for many use cases that I have heard of
at least, quite adequate.

Joe

--
Crunchy Data - http://crunchydata.com
PostgreSQL Support for Secure Enterprises
Consulting, Training, & Open Source Development

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2021-10-21 20:19:56 Re: parallelizing the archiver
Previous Message David Christensen 2021-10-21 20:07:17 Re: CREATE ROLE IF NOT EXISTS