count的性能从高到低是:count(*) ≈ count(1) > count(id) > count(普通索引列) > count(未加索引列)
-
count(*) :它会获取所有行的数据,不做任何处理,行数加1。
-
count(1):它会获取所有行的数据,每行固定值1,也是行数加1。
-
count(id):id代表主键,它需要从所有行的数据中解析出id字段,其中id肯定都不为NULL,行数加1。
-
count(普通索引列):它需要从所有行的数据中解析出普通索引列,然后判断是否为NULL,如果不是NULL,则行数+1。
-
count(未加索引列):它会全表扫描获取所有数据,解析中未加索引列,然后判断是否为NULL,如果不是NULL,则行数+1。