
I've always believed count(1) was faster as it doesn't have to return all columns just the row identity. But logically speaking the optimiser should take care of that so they should translate into the same underlying code

count (1) is faster than count(*) because count(*) returns all the rows as given in the select stmt including duplicate and null values while count(1) or count(expr) will return all non-null values in column 1.

count(1) will be faster than count(*) because it counts the first column values with not null

count(1) is faster than count(*)