sql专题 之 count()区别
count(1)
count(1) 是对结果集中的每一行计数,不关注具体的列,只是计数行数。
每一行都计为常数1
等同于 count(*),性能上基本一致,但有时可能用于表达清晰性
count(*)
与count(1)类似。
计算表中所有符合条件的行数,无论行内列值是否为空
通常推荐count(*)作为行计数的通用写法
因为在innoDB引擎中,会优化为直接统计页数上的数量
count(列名)
是对特定列进行非空值的计数。只有当该列有实际值才会被计入。
常用于统计特定字段的有效数据量时,例如有多少学生的son不为空→count(sno)
比较
- 当列中有大量的null值时,count(列名)需要遍历和检查每一行而count(*)不需要
- 故从性能上来说,count(*)的性能要优于count(列)
原文地址:https://blog.csdn.net/oneouto/article/details/143637824
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!