如果你要统计行数就用count(*)
或者count(1)
,推荐前者
如果要统计某个字段不为NULL值的个数就用count(字段)
1.当mysql确认括号内的表达式值不可能为空时,实际上就是在统计行数
2.如果mysql知道某列col不可能为NULL值,那么mysql内部会将count(col)表达式优化为count(*)
这2句话出自<<高性能MySQL>>
一书
也就是说count(1)和count(主键字段)还是要优化到count(*)的
3.InnoDB handles SELECT COUNT(*) and SELECT COUNT(1) operations in the same way. There is no performance difference.
这句话出自官方文档,地址为https://dev.mysql.com/doc/ref…