Lincoln Yeoh <lyeoh@pop.jaring.my> writes:
> would/should select count(*) be slower than select
> count(averysmallcolumnmaybeboolean)
There is actually a semantic difference there, see
http://www.postgresql.org/devel-corner/docs/postgres/sql-expressions.htm#SYNTAX-AGGREGATES
count(*) means the count of selected rows, but count(foo) means the
number of selected rows where the variable or expression is not NULL.
count(*) should be a fraction faster, because it doesn't expend any
cycles to check whether the specific column is NULL. The "*" in this
syntax doesn't mean "all columns" the way it does in a select list,
it's just a dummy.
regards, tom lane