count(*)与count(1)的区别:
1、如果列为主键,count(列名)效率优于count
如果列不为主键,count(1)效率优于count(列名)
如果表中存在主键,count(主键列名)效率最优,
如果表中只有一列,则count(星号)效率最优,
如果表中有多列,且不存在主键,则count(1)效率更优
2、count(1)中的1并不是表示第一个字段,而是一个固定值。count(*)执行的时候会把星号翻译成字段的具体名字
多了一个翻译的动作,效率会低一点。
3、注意:count(*)和count(1)都不会过滤空值
源码