【JAVA面试】—01阿里规范为什么禁止使用 count(列名)或 count(常量)来替代 coun(*)

1、我们先用一组数据测试一下几个的区别
首先,先创建一张表 ,主键id、int 类型的字段id2、varchar 类型的字段name
在往表里面插入七条数据,如下
用不同的语句测试如下
返回结果7
返回结果7
返回结果1
返回结果2
从以上测试结果可以总结如下
2、性能方面
mysql 官网给出的解释
2.1、当字段为主键情况下:
2.2、当字段为非主键(常规字段)情况下:
count(*) 和count(1)性能一致,为什么还是要使用count(*)?因为Count(*) 是SQL92定义的标准统计行数的语法,跟数据库无关,遵守SQL规范,当数据库版本优化之后,代码不用修改,可以一劳永逸
本片文章配有专门视频讲解 【JAVA面试】—01阿里规范为什么禁止使用 count(列名)或 count(常量)来替代 coun(*)