【数据库】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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Idea激活码永久有效Idea2020.3.3激活码教程-持续更新,一步到位

    Idea激活码永久有效Idea2020.3.3激活码教程-持续更新,一步到位Idea激活码永久有效2020.3.3激活码教程-Windows版永久激活-持续更新,Idea激活码2020.3.3成功激活

    2022年6月17日
    379
  • dropout和bagging_dropout总结「建议收藏」

    dropout和bagging_dropout总结「建议收藏」1.伯努利分布:伯努利分布亦称“零一分布”、“两点分布”。称随机变量X有伯努利分布,参数为p(02.dropout其实也是一种正则化,因为也把参数变稀疏(l1,原论文)和变小(l2,caffe实际实现)。只有极少的训练样本可用时,Dropout不会很有效。因为Dropout是一个正则化技术,它减少了模型的有效容量。为了抵消这种影响,我们必须增大模型规模。不出意外的话,使用Dropout时较佳…

    2022年5月4日
    66
  • JS实现继承的几种方法总结

    JS实现继承的几种方法总结首先定义一个父类://构造函数functionAnimal(name){ this.name=name||’Animal’; this.sleep=function(){ console.log(this.name+’正在睡觉!’); };}//原型上面的方法:Animal.prototype.eat=function(food){ console…

    2022年7月22日
    7
  • 线程池参数如何设置?

    线程池参数如何设置?前言着计算机行业的飞速发展,摩尔定律逐渐失效,多核CPU成为主流。使用多线程并行计算逐渐成为开发人员提升服务器性能的基本武器。J.U.C提供的线程池:ThreadPoolExecutor类,帮助开发人员管理线程并方便地执行并行任务。了解并合理使用线程池,是一个开发人员必修的基本功。线程池参数配置方案显得十分重要。一、参数设置的传统方案1.线程池中执行的任务性质。计算密集型的任务比较占cpu,所以一般线程数设置的大小等于或者略微大于cpu的核数;但IO型任务主要时间消耗在IO等待上,cpu压

    2022年5月31日
    38
  • 关系数据库的设计_关系型数据库的设计原则

    关系数据库的设计_关系型数据库的设计原则1、设计一个合适的关系数据库系统的关键是关系数据库模式的设计,即应构造几个关系模式, 每个模式有哪些属性,怎样将这些相互关联的关系模式组建成一个适合的关系模型,关系数据库 的设计必须在关系数据库设计理论的指导下进行。2、关系数据库设计理论有三个方面的内容:函数依赖、范式和模式设计。函数依赖起核心作用, 它是模式分解和模式设计的基础,范式是模式分解的标准。【例1】设计一个学生课程数据库,其关系…

    2022年8月18日
    26
  • busybox如何安装(wii安装说明)

    转自http://blog.csdn.net/denlee/archive/2008/04/06/2254192.aspx
       这几天在使用Busybox制作FS2410开发板的CRAMFS文件系统,由于开始下载的是Busybox1.10,每次下载到开发板中,然后启动总是出现”Failedtoexecute/linuxrc. Attemptingdefaults…“的错误。到网上查了大量的资料,并做了大量的实验,发现都不能成功。今天下午突然发现一个能够仿真arm的软件

    2022年4月15日
    92

发表回复

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

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