【数据库】count(*),count(1)和count(列)

【数据库】count(*),count(1)和count(列)【数据库】count(*),count(1)和count(列)

大家好,又见面了,我是你们的朋友全栈君。

   最近写了一些SQL,在用count进行统计的时候,我一般都习惯用count(*),看同事的代码有事会用count(1),那么count(*),count(1)和count(某一列)有什么区别呢?

   首先从查询结果来看:

count(*)和count(1)统计的是整张表的所有行。

count(列):如果统计的列不允许为null,则统计的也是所有行,当这一列有null值时,count将忽略null的行。

        接着从查询效率上来看:

        网上说法不一,后来请教了公司的DBA,DBA是这么说的:这个具体得看表,结果一样 数据量不大的话,没什么区别,如果数据量大并有主键,count(1)会好一点。

        于是在自己的数据库里进行测试:

1.4000+数据,查询时间一样,都是0.003 sec

2.14W+数据,count(1): 0.078 sec

                        count(*): 0.059 sec

                        count(id): 0.067 sec

         从结果上来看,是count(*)比较快。(查询结果是在id是主键,并且是索引的前提下产生的)

         以上是我对他们三个的一点点认识,感觉还不是很全面,大家还有什么看法,欢迎讨论。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/105667.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月25日 上午9:20
下一篇 2022年4月25日 上午9:20


相关推荐

  • 深度解析:DeepSeek、豆包、ChatGPT三大AI模型优缺点对比

    深度解析:DeepSeek、豆包、ChatGPT三大AI模型优缺点对比

    2026年3月12日
    3
  • lstm怎么预测长时间序列_时间序列预测代码

    lstm怎么预测长时间序列_时间序列预测代码写在前面LSTM模型的一个常见用途是对长时间序列数据进行学习预测,例如得到了某商品前一年的日销量数据,我们可以用LSTM模型来预测未来一段时间内该商品的销量。但对于不熟悉神经网络或者对没有了解过RNN模型的人来说,想要看懂LSTM模型的原理是非常困难的,但有些时候我们不得不快速上手搭建一个LSTM模型来完成预测任务。下面我将对一个真实的时间序列数据集进行LSTM模型的搭建,不加入很多复杂的功能,快速的完成数据预测功能。问题大概如下:某煤矿有一个监测井,我们每20分钟获…

    2025年10月22日
    5
  • 国内十大正规现货交易平台排名(2021版榜单)

    国内十大正规现货交易平台排名(2021版榜单)现货亦称实物,指可供出货、储存和制造业使用的实物商品。可供交割的现货可在近期或远期基础上换成现金,或先付货,买方在极短的期限内付款的商品的总称。期货的对称。随着互联网的出现,世界已慢慢变成地球村,建立在信息化基础上的现货电子交易走上新经济的舞台。现货电子交易(也称为大宗商品电子交易,或现货仓单交易)是以现货仓单为交易的标的物,采用计算机网络进行的集中竞价买卖,统一撮合成交,统一结算付款,价格行情实时显示的交易方式。国内不少投资者对现货交易还不是太了解,下面小编为您介绍“国内十大正规现货交易平台排名(20

    2022年6月15日
    59
  • Linux Namespace系列(06):network namespace (CLONE_NEWNET)

    Linux Namespace系列(06):network namespace (CLONE_NEWNET)networknames 用来隔离网络设备 IP 地址 端口等 每个 namespace 将会有自己独立的网络栈 路由表 防火墙规则 socket 等 每个新的 networknames 默认有一个本地环回接口 除了 lo 接口外 所有的其他网络设备 物理 虚拟网络接口 网桥等 只能属于一个 networknames 每个 socket 也只能属于一个 networknames

    2026年3月20日
    2
  • java中map根据value找key_Java Map和Map<String, Object>类型,map通过value找key

    java中map根据value找key_Java Map和Map<String, Object>类型,map通过value找keyMap是Map的一个泛型形式,俩个之间实际上是一个东西,但是用法却有点不一样1、Map:里面存放的是键值对集合,键值对的类型可以是任意封装类型实例Mapmap=newHashMap();//以下的俩种使用方式都是对的map.put(“a”,1);map.put(11,”abc”);2、Map:中只能存放指定类型的key和指定类型的value如下Map中只能存放String类型的键,Object…

    2022年7月23日
    12
  • 程序员进阶神器,ProcessOn绘制时序图

    程序员进阶神器,ProcessOn绘制时序图ProcessOn 支持思维导图 流程图 原型图 时序图 架构图等十多种图形绘制 ProcessOn 九周年活动 不忘初心 历 9 弥新

    2026年3月18日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号