MySQL中的COUNT(1)和COUNT(*) 的区别
•
MySQL性能
count情况
- count(1):可以统计表中所有数据,不统计所有的列,用1代表代码行,在统计结果中包含列字段为null的数据;
- count(字段):只包含列名的列,统计表中出现该字段的次数,并且不统计字段为null的情况;
- count(*):统计所有的列,相当于行数,统计结果中会包含字段值为null的列;
count执行效率
- 列名为主键,count(列名)比count(1)快;列名不为主键,count(1)会比count(列名)快;
- 如果表中多个列并且没有主键,则count(1)的执行效率优于count(*);
- 如果有主键,则select count(主键)的执行效率是最优的;如果表中只有一个字段,则select count(*)最优。