在自己电脑上没有很大的数据量所以在公司的测试环境进行了测试验证,不便截图
我在一个有100多万的表中执行了
select count(0)
select count(1)
select count(*)
select count(唯一索引字段)
select count(没有索引字段)
经过执行计划比较性能:
count(唯一索引字段)=count(0)= count(1)= count(*)>count(没有索引字段)
count(0)和count(1)和count(*)的执行计划一样,都会走索引扫描,查询的时间接近,比较少的查询次数得出的结果差异无法对性能进行评价,执行计划判断性能是比较好的标准。
count(0)将返回表格中所有存在的行的总数包括值为null的行
count(1)会统计包括null值的所有符合条件的字段的条数。
count(0)count(1) count(*) 都会返回null的行
count(字段)将返回表格中除去null以外的所有行的总数(有默认值的列也会被计入)
2020年11月11日 对前文中的错误进行一定的修订
之前写的 count(唯一索引