How Postgresql Compares... Count(*) and others
Last time I tested this on the big O ( early 8.0.x ) count(*) was always
fractionally quicker.... there was a body of thought at the time that said
count(1) or count(<field>) was quicker.... no idea where it came from.
I have not tried to see if it makes any difference in Postgresql...
regards
Mark
Mark kirkwood <markir@slingshot.co.nz> writes:
I have not tried to see if it makes any difference in Postgresql...
Postgres converts count(*) to count(1) at the grammar stage (cf. gram.y,
about line 4817 in current sources). So if you think you detect any
performance difference, you're surely hallucinating...
regards, tom lane
On Sun, Jul 22, 2001 at 03:06:52PM +1200,
Mark kirkwood <markir@slingshot.co.nz> wrote:
Last time I tested this on the big O ( early 8.0.x ) count(*) was always
fractionally quicker.... there was a body of thought at the time that said
count(1) or count(<field>) was quicker.... no idea where it came from.
Note that count(<field>) and count(*) are not equivalent. count(<field>)
counts only rows where <field> isn't null.
On Sunday 22 July 2001 15:49, you wrote:
Mark kirkwood <markir@slingshot.co.nz> writes:
I have not tried to see if it makes any difference in Postgresql...
Postgres converts count(*) to count(1) at the grammar stage (cf. gram.y,
about line 4817 in current sources). So if you think you detect any
performance difference, you're surely hallucinating...regards, tom lane
It seemed appropriate to test my "experimental method" with this example :
I measured elapsed times for count(*), count(1) ....
I can (with some relief) report elapsed times for both at 1m01, with a
variation of 1 s for both measurements ...
thanks for everyboys patience here...
Mark