count 有count(*), count(1) 和count(具体字段)三种,那种效率更快,表中有主键或者索引的情况下又如何呢,下面给出总结性的结论供大家参考。
首先明确一点,执行时只会使用一个索引。
测试结论如下:
count(*)和count(1)无任何差别,永远优于count其他字段,无论加不加任何索引
count()里面的值可取任意值,与结果无关
加索引显著快于不加索引
主键索引快于普通索引
没有索引时,与列含不含空值无关
count选取的列上如果有就用自己的索引,没有则使用默认索引
(取首个添加的索引,即使存在主键)
总结:
只要存在普通索引,count就会使用普通索引,
只存在主键时,count(*)和或ount(1)会使用主键索引,其他字段不会
count(*)和或ount(1)最快