count(column_name),count(1),count(*)
count(column_name),count(1),count(*)
count()用于统计行数,常见用法有:
- count(column_name)
- count(1)
- count(*)
区别
count(column_name)只能统计非空的数据行,而count(1)/count(*)则会统计所有行count(1)和count(*)的效率一致,但是count(*)的成本更低对于InnoDB,count(1)和count(*)都不适合大规模数据,对于MyISAM,维护了一个size属性来表示数据总数
为什么count(*)成本更低,因为二级索引比聚簇索引占用的存储空间更小
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 CautionX!
