非常自我解释的问题。有没有理由使用其中一个?
答案 0 :(得分:46)
Count(*)计算所有记录,包括空值,而Count(fieldname)不包括空值。
答案 1 :(得分:6)
选择count(*)选择任意行,select count(field)选择此字段不为空的行。
答案 2 :(得分:3)
如果你想提高表现(即成为一个完整的表演纳粹),你可能不想这样做。
示例:
SELECT COUNT(1) FROM MyTable WHERE ...
答案 3 :(得分:1)
这也困扰了我一段时间。
在MySQL中,至少COUNT(*)
计算行中每个(*)值不为空的行数。只需COUNT
一列就会计算该列不为空的行数。
就使用单列的性能而言,会稍快一些,
答案 4 :(得分:-1)
count(*)会更快。使用WHERE,MyISAM和InnoDB的速度将相同。