执行效果上:

  1. count(*)包括了所有的列,相当于行数,在统计结果的时候,不会忽略列值为NULL;
  2. count(1)包括了忽略所有列,用1代表代码行,在统计结果的时候,不会忽略列值为NULL;
  3. count(列名)只包括列名那一列,在统计结果的时候,会忽略列值为空(这里的空不是只空字符串或者0,而是表示null)的计数,即某个字段值为NULL时,不统计。

所以呢,count(1)和count(*)之间没有区别,因为他们两个都不会过滤空值,但count(列名)就有区别了,因为count(列名)会去过滤空值。

从执行效率来说:

他们之间根据不同情况会有些许区别,MySQL会对count(*)做优化。

  1. 如果列为主键,count(列名)效率优于count(1)

  2. 如果列不为主键,count(1)效率优于count(列名)

  3. 如果表中存在主键,count(主键列名)效率最优

  4. 如果表中只有一列,则count(*)效率最优

  5. 如果表有多列,且不存在主键,则count(1)效率优于count(*)

补充关于count(1)count(*)原理 引用百度知道专业回答:

count(1)时,其实就是计算一共有多少符合条件的行。1并不是表示第一个字段,而是表示一个固定值。其实就可以想成表中有这么一个字段,这个字段就是固定值1,count(1),就是计算一共有多少个1;count(*)时,执行时会把星号翻译成字段的具体名字,效果也是一样的,不过多了一个翻译的动作,比固定值的方式效率稍微低一些。

区别:count(1) 和 count(*)和count(列名)相关推荐

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

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

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

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

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

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

  4. mysql55和57的区别_技术分享 | MySQL:count(*)、count(字段) 实现上区别

    我们继续来讨论一下 count(*).count(字段)实现上的区别.注意我们这里都使用 Innodb 做为存储引擎,不讨论其他引擎.因为了有了前面的讨论,更容易看出它们的区别,这里我们有如下注意点: ...

  5. 【优化】COUNT(1)、COUNT(*)、COUNT(常量)、COUNT(主键)、COUNT(ROWID)、COUNT(非空列)、COUNT(允许为空列)、COUNT(DISTINCT 列名)

    [优化]COUNT(1).COUNT(*).COUNT(常量).COUNT(主键).COUNT(ROWID).COUNT(非空列).COUNT(允许为空列).COUNT(DISTINCT 列名) 1. ...

  6. count(*),count(1),count(列)区别

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

  7. select count(*) from temp 与select count(1) from temp有什么区别

    select count(*) from temp 与select count(1) from temp有什么区别 ----count(*)是整个表中有多少条记录,扫描的是整个表 ---- ----c ...

  8. mysql中count()函数用法:count(1)和count(*)有什么区别?

    count(*).count(1).count(字段)都有什么区别? 在我们的日常开发中,经常会遇到计算一张表的行数的情况,通常情况下我们使用一条select count(*) from t 语句就完 ...

  9. 性能对比:Count(字段)、Count(主键)、Count(1)、Count(*)

    本文经授权转载自微信公众号:猿人谷 最近有几个小伙伴留言说不清楚Count(字段).Count(主键).Count(1).Count(*)的区别,特此写篇短文说明下. 以下讨论是基于InnoDB引擎. ...

  10. SQL报错:Column count doesn‘t match value count at row 1

    Column count doesn't match value count at row 1 意思是:列数与第1行的值数不匹配 比如:person表中有4个字段(id,name,pwd,gender ...

最新文章

  1. 百度语音识别技术负责人李先刚:如何利用Deep CNN大幅提升识别准确率?
  2. day8 网络编程 异常处理
  3. QQ 相册后台存储架构重构与跨 IDC 容灾实践
  4. TestinPro应用与DevOps之路
  5. 分布式事务实践 解决数据一致性 分布式事务实现:消息驱动模式
  6. Microsoft SQL Server数据库学习(一)
  7. Maven项目的目录结构+maven的安装与配置
  8. Web页面执行shell命令
  9. python udp socket通信
  10. 未转变者服务器怎么弄指令权限,» 未转变者 unturned管理员指令
  11. 全球最最可爱的的10种著名小型犬
  12. 社保入税+国家支持,企业一大法宝:灵活用工
  13. 用 C 语言编写的程序被称为,用c语言编写的程序被称为
  14. 黑产系列01-如何发现黑产情报
  15. 6.easyui+ztree案例:zTree树
  16. 计算机网络 网络层 路由汇总(路由聚合)
  17. python判断火车票座位号分布图_火车票座位号分布图图解(是否靠窗)
  18. sap客户主数据bapi_SAP SD实施笔记-客户主数据(一)
  19. DataQL The content of elements must consist of well-formed character data or markup. 问题
  20. MDCache类分析

热门文章

  1. 使用宝塔Linux面板搭建Springboot项目
  2. 教你如何认识一个股票有庄家(图解)
  3. 计算机课gif,GIF动图:一同学发来开学第一天计算机课就大秀骚操作,全班同学都五体涂地...
  4. 前AMD全球副总裁单羿加入鉴智机器人 后者获千万美元融资
  5. php x20有啥用,vivoX20使用评测:看完就知道vivoX20值不值得买
  6. 手写Vue 的双向数据绑定
  7. JAVA计算机毕业设计网上投稿管理系统(附源码、数据库)
  8. 我们可以一起来聊聊算法工程师当前选哪个方向好?
  9. jQuery手机端图片轮播插件
  10. redis配置(详解)