Re: Surprising benchmark count(1) vs. count(*)

From: Thomas Kellerer <spam_eater(at)gmx(dot)net>
To: pgsql-performance(at)lists(dot)postgresql(dot)org
Subject: Re: Surprising benchmark count(1) vs. count(*)
Date: 2019-09-19 11:22:40
Message-ID: 35f81ca4-f68e-8b71-d34c-7364751b4e36@gmx.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

Laurenz Albe schrieb am 19.09.2019 um 12:22:
>> https://blog.jooq.org/2019/09/19/whats-faster-count-or-count1/
>>
>> Is there a reason why count(*) seems to be faster?
>
> "count(*)" is just the SQL standard's way of saying what you'd
> normally call "count()", that is, an aggregate without arguments.
>
> "count(1)" has to check if 1 IS NULL for each row, because NULL
> values are not counted. "count(*)" doesn't have to do that.

But 1 is a constant, why does it need to check it for each row?

In response to

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Tom Lane 2019-09-19 14:11:52 Re: Surprising benchmark count(1) vs. count(*)
Previous Message Laurenz Albe 2019-09-19 10:22:42 Re: Surprising benchmark count(1) vs. count(*)