AI 助理
备案 控制台
开发者社区 数据库 文章 正文

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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
推荐场景:
学生管理系统数据库设计 搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: MySQL的count(*)、count(1)和count(列名)区别

为统计记录数,由SELECT返回。假如有如下数据:


所有记录

image.png


统计行的总数


image.png


count(1)、count() 都是检索表中所有记录行的数目,不论其是否包含null值。
count(1)比count(
)效率高。

count(字段)是检索表中的该字段的非空行数,不统计这个字段值为null的记录。

任何情况下最优选择

SELECT COUNT(1) FROM tablename

尽量减少类似:

SELECT COUNT(*) FROM tablename WHERE COL = 'value' 

杜绝:  

SELECT COUNT(COL) FROM tablename WHERE COL2 = 'value' 

如果表没有主键,那么count(1)比count()快

如果有主键,那么count(主键,联合主键)比count()快

如果表只有一个字段,count(*)最快


count(1)跟count(主键)一样,只扫描主键。

count(*)跟count(非主键)一样,扫描整个表

明显前者更快一些。


执行效果

count(1) V.S count(*)



当表的数据量大些时,对表作分析之后,使用count(1)还要比使用count(*)用时多!


从执行计划来看,count(1)和count()的效果是一样的。 但是在表做过分析之后,count(1)会比count()的用时少些(1w以内数据量),不过差不了多少。


如果count(1)是聚索引,id,那肯定是count(1)快。但是差的很小的。

因为count() 会自动优化指定到那一个字段。所以没必要去count(1),用count(),sql会帮你完成优化的 因此:count(1)和count(*)基本没有差别!



count(1) and count(字段)

  • count(1) 会统计表中的所有的记录数,包含字段为null 的记录
  • count(字段) 会统计该字段在表中出现的次数,忽略字段为null 的情况。即不统计字段为null 的记录。


count(*) 和 count(1)和count(列名)区别


执行效果上:

count(*)包括了所有的列,相当于行数,在统计结果的时候,不会忽略列值为NULL

count(1)包括了忽略所有列,用1代表代码行,在统计结果的时候,不会忽略列值为NULL

count(列名)只包括列名那一列,在统计结果的时候,会忽略列值为空(这里的空不是只空字符串或者0,而是表示null)的计数,即某个字段值为NULL时,不统计



执行效率


列名为主键,count(列名)会比count(1)快

列名不为主键,count(1)会比count(列名)快

如果表多个列并且没有主键,则 count(1) 的执行效率优于 count()

如果有主键,则 select count(主键)的执行效率是最优的

如果表只有一个字段,则 select count()最优。


实例

image.png

image.png


MyISAM有表元数据的缓存,例如行,即COUNT()值,对于MyISAM表的COUNT()无需消耗太多资源,但对于Innodb,就没有这种元数据,CONUT(*)执行较慢。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
javaedge
目录
相关文章
qhhf_地道酬勤
|
13天前
|
存储 关系型数据库 MySQL
一个项目用5款数据库?MySQL、PostgreSQL、ClickHouse、MongoDB区别,适用场景
一个项目用5款数据库?MySQL、PostgreSQL、ClickHouse、MongoDB——特点、性能、扩展性、安全性、适用场景比较
qhhf_地道酬勤
137 0
yuanzhengme
|
2月前
|
存储 关系型数据库 MySQL
ES的全文索引和MySQL的全文索引有什么区别?如何选择?
【8月更文挑战第26天】ES的全文索引和MySQL的全文索引有什么区别?如何选择?
yuanzhengme
228 5
程序员小海绵
|
1月前
|
存储 Oracle 关系型数据库
Oracle和MySQL有哪些区别?从基本特性、技术选型、字段类型、事务、语句等角度详细对比Oracle和MySQL
从基本特性、技术选型、字段类型、事务提交方式、SQL语句、分页方法等方面对比Oracle和MySQL的区别。
程序员小海绵
139 18
Oracle和MySQL有哪些区别?从基本特性、技术选型、字段类型、事务、语句等角度详细对比Oracle和MySQL
1015608500650149
|
11天前
|
存储 SQL 关系型数据库
mysql中主键索引和联合索引的原理与区别
本文详细介绍了MySQL中的主键索引和联合索引原理及其区别。主键索引按主键值排序,叶节点仅存储数据区,而索引页则存储索引和指向数据域的指针。联合索引由多个字段组成,遵循最左前缀原则,可提高查询效率。文章还探讨了索引扫描原理、索引失效情况及设计原则,并对比了InnoDB与MyISAM存储引擎中聚簇索引和非聚簇索引的特点。对于优化MySQL性能具有参考价值。
1015608500650149
19 1
猿java
|
11天前
|
存储 关系型数据库 MySQL
深度剖析:MySQL聚合函数 count(expr) 如何工作?如何选择?
本文详细探讨了MySQL中count(expr)函数的不同形式及其执行效率,包括count(*)、count(1)、count(主键)、count(非主键)等。通过对InnoDB和MyISAM引擎的对比分析,解释了它们在不同场景下的实现原理及性能差异。文章还通过实例演示了事务隔离级别对统计结果的影响,并提供了源码分析和总结建议。适合希望深入了解MySQL统计函数的开发者阅读。
猿java
29 0
程序员皮皮林
|
12天前
|
存储 JSON 关系型数据库
MySQL 5.x和MySQL 8.x到底有什么区别?
本文详细对比了MySQL 5.x与MySQL 8.x的主要区别,包括存储引擎改进、性能提升、SQL语法增强(如窗口函数、CTE、JSON支持)、安全性和权限管理、并发及锁机制、InnoDB引擎增强、复制与高可用性等方面的显著差异。通过具体示例展示了8.x版本在企业级应用和高并发场景下的优越表现,建议有条件时尽早升级至MySQL 8.x以充分利用其新特性。
程序员皮皮林
61 0
蓝易云
|
13天前
|
存储 关系型数据库 MySQL
Mysql行格式DYNAMIC和COMPACT区别
总之,选择哪种行格式取决于具体的应用场景,如数据类型分布、读写比例、存储与性能需求等。在处理大量文本或二进制数据且对存储空间敏感的应用中,DYNAMIC格式可能是更好的选择;而对于混合型数据且对读取性能有一定要求的场景,COMPACT格式可能更合适。在设计数据库时,评估这些因素并进行适当测试,可以帮助确定最适合的行格式。
蓝易云
31 0
ssh1121
|
2月前
|
SQL 关系型数据库 MySQL
Mysql中from多表跟join表的区别
Mysql中from多表跟join表的区别
ssh1121
139 0
sjia1109
|
2月前
|
关系型数据库 MySQL
Mysql中count(1)、count(*)以及count(列)的区别
Mysql中count(1)、count(*)以及count(列)的区别
sjia1109
37 0
zzy的aly
|
4天前
|
存储 SQL 关系型数据库
Mysql学习笔记(二):数据库命令行代码总结
这篇文章是关于MySQL数据库命令行操作的总结,包括登录、退出、查看时间与版本、数据库和数据表的基本操作(如创建、删除、查看)、数据的增删改查等。它还涉及了如何通过SQL语句进行条件查询、模糊查询、范围查询和限制查询,以及如何进行表结构的修改。这些内容对于初学者来说非常实用,是学习MySQL数据库管理的基础。
zzy的aly
22 6

热门文章

最新文章

  • 1
    RDS for SQL server 空间问题排查汇总
  • 2
    PostgreSQL flashback(闪回) 功能实现与介绍
  • 3
    MySQL数据表生成ER图
  • 4
    MySQL 中的开启和关闭事务| 学习笔记
  • 5
    查看nginx apache mysql php原始编译
  • 6
    Java 实现实时监听MySQL数据库变更MySQLBinListener
  • 7
    Linux基础命令---mysql
  • 8
    node+mysql,实现基本的增删改查,附带跟踪记录和运行时间记录
  • 9
    Linux RDS Protocol Local Privilege Escalation
  • 10
    viso2010从mysql中导出ER图
  • 1
    mysql中MyISAM和InnoDB的区别是什么
    46
  • 2
    mysql-相关子查询
    35
  • 3
    mysql-相关子查询
    34
  • 4
    mysql-相关子查询
    32
  • 5
    JAVA语言VUE2+Spring boot+MySQL开发的智慧校园系统源码(电子班牌可人脸识别)Saas 模式
    541
  • 6
    MySQL 的 union 和union all 的区别
    123
  • 7
    MySQL字段的字符类型该如何选择?千万数据下varchar和char性能竟然相差30%🚀
    436
  • 8
    CentOS 7系统加固详细方案SSH FTP MYSQL加固
    145
  • 9
    MySQL集群 双主架构(配置命令)
    98
  • 10
    MySQL通过 bin-log 恢复从备份点到灾难点之间数据
    277
  • 相关课程

    更多
  • MySQL企业常见架构与调优经验分享
  • 云数据库MySQL版快速上手教程
  • 阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
  • MySQL实战进阶
  • 数据库及SQL/MySQL基础
  • 云数据库MySQL快速入门
  • 相关电子书

    更多
  • One Box: 解读事务与分析一体化数据库 HybridDB for MySQL
  • One Box:解读事务与分析一体化数据库HybridDB for MySQL
  • 如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进
  • 相关实验场景

    更多
  • MySQL引擎及架构优化
  • 基于EBS部署高性能的MySQL服务
  • 5分钟上手Flink MySQL连接器
  • 云端MySQL的安装及应用
  • 手动部署MySQL数据库(Alibaba Cloud Linux 2)
  • 手动部署MySQL数据库(CentOS 7)
  • 推荐镜像

    更多
  • mysql
  • mariadb
  • postgresql
  • 下一篇
    阿里云无影云电脑免费试用,最长可试用3个月

    玻璃钢生产厂家广州商场美陈研发长乐玻璃钢牛雕塑专业玻璃钢雕塑定制山西仿铜玻璃钢雕塑定做价格走廊商场美陈销售厂家湖南常德玻璃钢雕塑厂家广东大型主题商场美陈费用四川玻璃钢仿真水果雕塑价格黔东南商场美陈样式武汉动物玻璃钢雕塑公司柳州玻璃钢门头雕塑成都仿铜玻璃钢雕塑玻璃钢花盆哪家产品好赣州玻璃钢南瓜屋雕塑广安玻璃钢仿真水果雕塑厂家园林景观的玻璃钢雕塑济宁卡通玻璃钢雕塑制作辽宁省玻璃钢雕塑临沧市玻璃钢雕塑设计如何周口水景玻璃钢雕塑四川玻璃钢雕塑制作仓山玻璃钢雕塑厂家温州景区玻璃钢雕塑销售厂家玻璃钢喷泉雕塑制品通道商场美陈多少钱宝山小型玻璃钢雕塑阜阳玻璃钢美陈雕塑定制广东商场美陈现价内蒙古玻璃钢佛像雕塑玻璃钢园林雕塑供应商香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

    玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化