Mysql count(*)与count(col)d对比
这里的知识点来源于博客总结
count(col):统计某列有值的结果数,即col is not null 的值
count(*): 统计表的字段数
MyISAM存储引擎
myisam引擎本身存储了一个特殊的字段,值是总行数
count(*): 会直接读取这个特殊的值,如果添加了where条件之后,并不能读取这个值,那么和其他存储引擎类似。可参考Innodb存储引擎。
count(col): 也无法读取特殊值。那么就会遍历字段col的值。
总结:count(*) 一般会比count(col)会快,因为count(*)可以忽略列而直接统计结果集行数。count(col)需要判断值是否为空
InnoDB存储引擎
总结:count(*) 一般会比count(col)会快,因为count(*)可以忽略列而直接统计结果集行数。count(col)需要判断值是否为空
参考博客:博客