count(*)与count(列名)的区别
首先count(*)与count(列名)意义就是不同的:
count(*) :对全表统计,比如一百行的表 有一列name的80行为空 此时统计的还是100
count(列名):只对一列进行统计,上面的情况count(name)就是99
如果忽略意义上的不同单独从效率上来说:
1)count(列名)在此列是主键的时候一定是快于count((*)的
2)在此列是索引的时候
如果索引列不非空那么 count(*)无法使用索引 所以要慢
如果索引非空 那么基本一样快
另外,count(列名)是和列的偏移有关的,偏移越大,代价越大,所以常用的列应该尽量排放在前面。