count()函数的作用是用来计算指定列或整个表中的函数,count()函数有以下三种写法:count(列名) 、count(1)、count(*) 。
其中,count(列名)只统计当前列中非空值的数量,如果值为null则不会被统计,但是仍然会消耗时间和内存,因为需要扫描表中的每一行记录。
count(1)会统计所有行数,不管是否有 null值,因为指定的是数字 1,所以不需要去扫描表中的列,仅仅是在内存中计数,因此比 count(列名) 更快。
count(星号) 也是统计所有行数,不管是否有 null值,和 count(1) 类似,但是 count(星号)会检查表中的每一行记录,即使行的值都是 NULL,也会被统计。
虽然和count(1) 在大多数情况下的执行时间是相同的,但是在某些数据库系统中,count(星号) 的执行时间可能更快一些,因为 星号被看作是一种特殊的优化符号,表示要计算所有列的值,包括索引列,因此查询引擎可以直接遍历所有的行数,而不需要额外的操作。此外,有些数据库系统还会对 count(星号) 进行优化,比如说在计算聚合结果时使用特殊的算法或者结构,从而达到更快的执行效果。
因此,对于 count函数,如果要统计整个表的行数,通常建议使用count(1) 或者 count(星号),因为它们都比 count(列名) 更快一些,而且可以保证结果的正确性。如果要统计某个特定的列中非空值的数量,可以使用 count(列名)。

count(列名)与count(*)、count(1)的区别相关推荐

  1. count(1)、count(*) 与 count (列名) 的执行区别

    (给视学算法加星标,提升数据技能) 转自:BigoSprite https://blog.csdn.net/iFuMI/article/details/77920767 执行效果:  1.count( ...

  2. select count(*)加其他字段_count(1)、count(*) 与 count(列名) 的执行区别

    (给ImportNew加星标,提高Java技能) 作者:BigoSprite blog.csdn.net/iFuMI/article/details/77920767 执行效果: 1.  count( ...

  3. 执行COUNT(1)、COUNT(*) 与 COUNT(列名) 到底有什么区别?

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:干掉 Navicat:这个 IDEA 的兄弟真香!个人原创100W+访问量博客:点击前往,查看更多 来源:blo ...

  4. 面试官 | count(1)、count(*) 、count(列名) 有什么区别?

    作者 | BigoSprite 来源 | 39sd.cn/0926A 先看执行效果: 1.  count(1) and count(*) 当表的数据量大些时,对表作分析之后,使用count(1)还要比 ...

  5. sql 在某表中加入一列count所有数据_执行COUNT(1)、COUNT(*) 与 COUNT(列名) 到底有什么区别?...

    击关注上方"SQL数据库开发", 设为"置顶或星标",第一时间送达干货. 1.  count(1) and count(*) 从执行计划来看,count(1)和 ...

  6. MySQL中count(1)、count(*) 与 count(列名) 的执行区别

    执行效果: 1.count(1) and count(*) 当表的数据量大些时,对表作分析之后,使用count(1)还要比使用count()用时多了! 从执行计划来看,count(1)和count() ...

  7. count(*)和count(1)和count(列名)的区别

    count是一种最简单的聚合函数,一般也是我们第一个开始学习的聚合函数,那么他们之间究竟由什么区别呢? 有的人说count(1)和count(*)他们之间有区别,而有的人说他们之间没有区别那么他们之间 ...

  8. 区别:count(1) 和 count(*)和count(列名)

    执行效果上: count(*)包括了所有的列,相当于行数,在统计结果的时候,不会忽略列值为NULL: count(1)包括了忽略所有列,用1代表代码行,在统计结果的时候,不会忽略列值为NULL: co ...

  9. count(1)、count(*)、count(列名)的含义、区别、执行效率

    维护同事的代码发现他的 sql 查询记录条数都是 count(1),而我则习惯用 count(*),这有什么区别呢? 含义: 1.count(*) :统计所有的行数,包括为null的行(COUNT(* ...

  10. count(*)、count(1)和count(列名)的区别

    count(*).count(1)和count(列名)的区别 1.执行效果上:   l  count(*)包括了所有的列,相当于行数,在统计结果的时候,不会忽略列值为NULL l  count(1)包 ...

最新文章

  1. 人类大脑神经如何进化?寄生虫充当了隐形设计师
  2. flask读取数据库(mysql)并展示表格(讲解获取表头的方法)【附上flask好看点的helloworld】
  3. 维沃手机有没有智能机器人_抢!抢!抢!到宏达手机广场抢价值399元智能学习机器人仅需39.9就可领取啦!...
  4. 【图像分割模型】多分辨率特征融合—RefineNet
  5. 如何使用 Kafka、MongoDB 和 Maxwell’s Daemon 构建 SQL 数据库的审计系统
  6. I love counting HDU - 6964
  7. 利润暴增800%,单车成本降至22.7万元!特斯拉交出最强年报
  8. SPFA求最短路——Bellman-Ford算法的优化
  9. HDU2093--考试排名
  10. java 跳转url_URL跳转的几种方式
  11. matlab画基因表达热图,科学网—使用pheatmap软件绘制基因表达热图 - 陈振玺的博文...
  12. Git系列之设置邮箱和用户名
  13. React---组件通信的方式
  14. 阿里云的ECS和AWS的EC2比较
  15. 1.Linux中超频及cpufreq相关汇总
  16. mongodb高可用集群 3 ---分片与副本集结合
  17. php详情页模板怎么做,WordPress自定义文章详情页模板
  18. 【Java基础系列教程】第二章 Java语言概述、配置环境变量
  19. USB耳机方案|USB麦克风方案|SSS1629方案设计
  20. 新的优化目标: energy efficiency

热门文章

  1. 什么是大数据,盘点国内最大用户(腾讯、阿里巴巴、百度、京东)数据公司分析
  2. [渝粤教育] 上海交通大学 理论力学 参考 资料
  3. CSDN周赛第29期:赢实体书《算法竞赛》和定制周边等礼品
  4. 2C的资本已经“悄悄”转向2B
  5. python设置次坐标_Python中Matplotlib如何添加次坐标轴,添加多个图例
  6. 网络层(IP,ICMP),数据链路层(以太网协议)
  7. C#中dataGridView用法集
  8. VB中 “实时错误“3704”,对象关闭时,不允许操作”
  9. 巧用Powercfg命令 - 玩转Windows 7中的电源管理
  10. mysql数据库锁MDL锁的解释