1 count(*),查询结果包含null 和空字符串
2 count(1),查询结果包含null 和空字符串
3 count(列名),查询结果不包括null 包含空字符串
4 三者的区别
count()和 count(1) 和 count(列名) 区别:
列名为主键,count(列名) 会比 count(1) 快 ;
列名不为主键,count(1) 会比 count(列名) 快 ;
如果表多个列并且没有主键,则 count(1) 的执行效率优于 count() ;
如果有主键,则 select count(主键)执行效率最优;
如果表只有一个字段,则 select count(*)最优
总结:
1 从执行效率上看,列名为主键,用count(列名);列名唯一,用count();其他用count(1)
2 从执行结果上看
count(1)和count() 包含空字符串和null
count(列名) 包含空字符串,不包含null
参考:添加链接描述