count(*)、count(1)、count(某字段)的区别

count(*):所有行进行统计,包括NULL行.COUNT(*)不单会进行全表扫描,也会对表的每个字段进行扫描。
count(1):所有行进行统计,包括NULL行.其实就可以想成表中有这么一个字段,这个字段就是固定值1,count(1),就是计算一共有多少个1
count(column):对column中非Null进行统计

执行效率:
列名为主键,count(列名)会比count(1)快

列名不为主键,count(1)会比count(列名)快

如果表多个列并且没有主键,则 count(1) 的执行效率优于 count(*)

如果有主键,则 select count(主键)的执行效率是最优的