到底应该使用count(*) 还是count(1)

简介:     关于count方法一直存在争议,count(*)、count(列名)、count(常量),到底应该使用哪个?我认为应该是count(*),count(*)是SQL92定义的标准统计数的方法。

    关于count方法一直存在争议,count(*)、count(列名)count(常量),到底应该使用哪个?我认为应该是count(*),count(*)SQL92定义的标准统计数的方法。我曾经有幸阅读过阿里巴巴的开发规范,里面提到强制使用count(*)。

      我通过以下四个查询命令来说明三个方法的区别:

     1.select count(*) from emp;
     2.select count(1) from emp;
     3.select count(job) from emp;
     4.select count(*) from emp where jobis not null;

      第一条命令查出的结果是员工的数量。

      第二条命令查出的结果是员工的数量。

      第三条命令查出的结果是工种不为空的员工的数量。

      第四条命令查出的结果是工种不为空的员工的数量。

      显然,第一条与第二条的效果相同,第三条与第四条的效果相同。

    至于1,2为什么选择1,因为1大家都能看懂,2已经不止一个人问过我是什么意思。至于3,4为什么选择4,因为4大家都能看懂,3会给不同的读者带来不同的理解。

       有部分人可能会说count(*)没有count(1)的效率高,我在一张包含33554432条记录的表中,使用count(*)和count(1)测试,所消耗的时间都是34秒之间。

       所以,大家完全可以不要因为效率问题而选择使用count(1)了。

目录
相关文章
|
5月前
|
存储 SQL 关系型数据库
count(1)、count(具体字段)和count(*)究竟有什么区别?
count(1)、count(具体字段)和count(*)究竟有什么区别?
56 0
|
8月前
|
数据库 OceanBase
LIMIT_ROW_COUNT
LIMIT_ROW_COUNT
54 1
|
8月前
|
SQL 数据可视化 关系型数据库
count(列名) ,count(1)与count(*) 有何区别?
count(列名) ,count(1)与count(*) 有何区别?
|
10月前
|
SQL 索引
Count(1) Count(0) Count(*) Count(列名)
Count(1) Count(0) Count(*) Count(列名)
112 0
|
SQL Oracle 关系型数据库
count函数
count函数
93 0
|
SQL 关系型数据库 MySQL
|
存储 SQL 缓存
count(*)那么慢能用吗,该怎么办呢?
大家好前面我们大概了解了为什么delete from表名,表的大小还是没有变小!以及数据删除流程,数据页空洞,online和inplace。重建表的两种实现方式。今天介绍一下为什么count(*)那么慢。
count(*)那么慢能用吗,该怎么办呢?
|
索引
Select count(*)、Count(1)、Count(0)的区别和执行效率比较
结论https://www.cnblogs.com/sueris/p/6650301.html 这里把上面实验的结果总结一下: count()和count(1)执行的效率是完全一样的。
2348 0
1093. Count PAT's (25)
#include #include #include using namespace std; int main() { string s; cin >> s; long long sum = 0, p = 0, t = 0; for (int i = 0; i < s.
781 0

热门文章

最新文章