阿里规范 - 五、MySQL 数据库 - (三)SQL语句 - 1 - 【强制】不要使用 count(列名)或 count(常量)来替代 count(*),count(*)是 SQL92 定义的 标准统计行数的语法,跟数据库无关,跟 NULL 和非 NULL 无关。

1、count(1)  vs  count(*)   

两者都统计NULL值;但 count(*)是 SQL92 定义的 标准统计行数的语法,跟数据库无关

且 坊间有传言 MySQL会对count(*)做优化   

不要用 count(1)

2、count(列名)   vs   count(*)

count(列名) 会去过滤NULL。

count(主键)    vs   count(*)

小数据量 几乎无差   大数据量 需要进一步测试

根据  ”暂不知道怎么选 就听阿里的”原则

用 count(*) 

猜你喜欢

转载自www.cnblogs.com/light-train-union/p/12228025.html