区别:count(1) 和 count(*)和count(列名)
执行效果上:
- count(*)包括了所有的列,相当于行数,在统计结果的时候,不会忽略列值为NULL;
- count(1)包括了忽略所有列,用1代表代码行,在统计结果的时候,不会忽略列值为NULL;
- count(列名)只包括列名那一列,在统计结果的时候,会忽略列值为空(这里的空不是只空字符串或者0,而是表示null)的计数,即某个字段值为NULL时,不统计。
所以呢,count(1)和count(*)之间没有区别,因为他们两个都不会过滤空值,但count(列名)就有区别了,因为count(列名)会去过滤空值。
从执行效率来说:
他们之间根据不同情况会有些许区别,MySQL会对count(*)做优化。
如果列为主键,count(列名)效率优于count(1)
如果列不为主键,count(1)效率优于count(列名)
如果表中存在主键,count(主键列名)效率最优
如果表中只有一列,则count(*)效率最优
如果表有多列,且不存在主键,则count(1)效率优于count(*)
补充关于count(1)count(*)原理 引用百度知道专业回答:
count(1)时,其实就是计算一共有多少符合条件的行。1并不是表示第一个字段,而是表示一个固定值。其实就可以想成表中有这么一个字段,这个字段就是固定值1,count(1),就是计算一共有多少个1;count(*)时,执行时会把星号翻译成字段的具体名字,效果也是一样的,不过多了一个翻译的动作,比固定值的方式效率稍微低一些。
区别:count(1) 和 count(*)和count(列名)相关推荐
- sql 在某表中加入一列count所有数据_执行COUNT(1)、COUNT(*) 与 COUNT(列名) 到底有什么区别?...
击关注上方"SQL数据库开发", 设为"置顶或星标",第一时间送达干货. 1. count(1) and count(*) 从执行计划来看,count(1)和 ...
- count(*)和count(1)和count(列名)的区别
count是一种最简单的聚合函数,一般也是我们第一个开始学习的聚合函数,那么他们之间究竟由什么区别呢? 有的人说count(1)和count(*)他们之间有区别,而有的人说他们之间没有区别那么他们之间 ...
- count(*)、count(1)和count(列名)的区别
count(*).count(1)和count(列名)的区别 1.执行效果上: l count(*)包括了所有的列,相当于行数,在统计结果的时候,不会忽略列值为NULL l count(1)包 ...
- mysql55和57的区别_技术分享 | MySQL:count(*)、count(字段) 实现上区别
我们继续来讨论一下 count(*).count(字段)实现上的区别.注意我们这里都使用 Innodb 做为存储引擎,不讨论其他引擎.因为了有了前面的讨论,更容易看出它们的区别,这里我们有如下注意点: ...
- 【优化】COUNT(1)、COUNT(*)、COUNT(常量)、COUNT(主键)、COUNT(ROWID)、COUNT(非空列)、COUNT(允许为空列)、COUNT(DISTINCT 列名)
[优化]COUNT(1).COUNT(*).COUNT(常量).COUNT(主键).COUNT(ROWID).COUNT(非空列).COUNT(允许为空列).COUNT(DISTINCT 列名) 1. ...
- count(*),count(1),count(列)区别
执行效果: count(1) and count(*) 当表的数据量大些时,对表作分析之后,使用count(1)还要比使用count(*)用时多了! 从执行计划来看,count(1)和count()的 ...
- select count(*) from temp 与select count(1) from temp有什么区别
select count(*) from temp 与select count(1) from temp有什么区别 ----count(*)是整个表中有多少条记录,扫描的是整个表 ---- ----c ...
- mysql中count()函数用法:count(1)和count(*)有什么区别?
count(*).count(1).count(字段)都有什么区别? 在我们的日常开发中,经常会遇到计算一张表的行数的情况,通常情况下我们使用一条select count(*) from t 语句就完 ...
- 性能对比:Count(字段)、Count(主键)、Count(1)、Count(*)
本文经授权转载自微信公众号:猿人谷 最近有几个小伙伴留言说不清楚Count(字段).Count(主键).Count(1).Count(*)的区别,特此写篇短文说明下. 以下讨论是基于InnoDB引擎. ...
- 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 ...
最新文章
- 百度语音识别技术负责人李先刚:如何利用Deep CNN大幅提升识别准确率?
- day8 网络编程 异常处理
- QQ 相册后台存储架构重构与跨 IDC 容灾实践
- TestinPro应用与DevOps之路
- 分布式事务实践 解决数据一致性 分布式事务实现:消息驱动模式
- Microsoft SQL Server数据库学习(一)
- Maven项目的目录结构+maven的安装与配置
- Web页面执行shell命令
- python udp socket通信
- 未转变者服务器怎么弄指令权限,» 未转变者 unturned管理员指令
- 全球最最可爱的的10种著名小型犬
- 社保入税+国家支持,企业一大法宝:灵活用工
- 用 C 语言编写的程序被称为,用c语言编写的程序被称为
- 黑产系列01-如何发现黑产情报
- 6.easyui+ztree案例:zTree树
- 计算机网络 网络层 路由汇总(路由聚合)
- python判断火车票座位号分布图_火车票座位号分布图图解(是否靠窗)
- sap客户主数据bapi_SAP SD实施笔记-客户主数据(一)
- DataQL The content of elements must consist of well-formed character data or markup. 问题
- MDCache类分析