mysql之count(主键) count(*) count(1)性能的谣传

如果你要统计行数就用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...

相关推荐