COUNT(1)和COUNT(*) 的区别
两者本质上没有任何区别。参见MYSQL 参考手册InnoDBhandlesSELECT COUNT(*)andSELECT COUNT(1)operations in the same way. There is no performancedifference.一、count情况1、count(1):可以统计表中所有数据,不统计所有的列,...
·
两者本质上没有任何区别。
InnoDB
handlesSELECT COUNT(*)
andSELECT COUNT(1)
operations in the same way. There is no performance difference.
一、count情况
1、count(1):可以统计表中所有数据,不统计所有的列,用1代表代码行,在统计结果中包含列字段为null的数据;
2、count(字段):只包含列名的列,统计表中出现该字段的次数,并且不统计字段为null的情况;
3、count(*):统计所有的列,相当于行数,统计结果中会包含字段值为null的列;
二、count执行效率
列名为主键,count(列名)比count(1)快;列名不为主键,count(1)会比count(列名)快;
如果表中多个列并且没有主键,则count(1)的执行效率优于count(*);
如果有主键,则select count(主键)的执行效率是最优的;如果表中只有一个字段,则select count(*)最优。
更多推荐
已为社区贡献3条内容
所有评论(0)