当前位置:   article > 正文

sql查询时 count(*),count(1),count(列名)区别和效率_sql 查看表 count第一列

sql 查看表 count第一列

count()的用法:主要用于查询表中数据的数量,常用的查询语句有count(*),count(字段),count(1),count(主键)。

1、count(主键)

会遍历所有主键取出所有的值并按行累加,因为主键不会为空,最终会返回总的行数。

2、count(字段)

会遍历所有该字段,如果为null则跳过,否则取出并累加,最后返回的是非null的总和。

3、count(1)

会遍历整张表,但不取值,直接计算行数。因此count(1)的性能要高于count(主键)。
和count(主键)相比,count(1)少了一个取值的动作,减少的这个取值的动作使得count(1)的效率高于count(主键)。

4、count(*)

count()的用法在早期的数据库和现在的数据库中有较大的差距。
在早期的数据库中,count(
)有可能会导致全表的扫描,因此效率会低。
如今的数据库引擎对count()做了优化,比如MyIsam引擎中count()会直接读取一个总行数的值,因此速度是最快的,InnoDB也同样对count()做了优化,用类似count(1)的方式获取行数,因此count()效率接近count(1)。

总结

执行效率:count(列名) < count(主键) < count(1) ≈ count(*)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/910991
推荐阅读
相关标签
  

闽ICP备14008679号