这个DBA有点耶
COUNT(*) vs COUNT(1):别再吵架了,MySQL 8.0的执行计划早就告诉你了
原创
关注作者
腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
这个DBA有点耶
社区首页
>
专栏
>
COUNT(*) vs COUNT(1):别再吵架了,MySQL 8.0的执行计划早就告诉你了
COUNT(*) vs COUNT(1):别再吵架了,MySQL 8.0的执行计划早就告诉你了
这个DBA有点耶
关注
发布于 2026-09-09 16:46:16
发布于 2026-09-09 16:46:16
6
0
举报
概述
COUNT(*)和COUNT(1)哪个更快?这个问题在技术论坛上吵了十几年,答案从“一样快”到“COUNT(1)更快”到“COUNT(*)更快”反复横跳。每次MySQL发新版本,就有人拿出来重新测一遍。本文从执行计划、存储引擎、索引选择、优化器行为四个层面,完整拆解5种COUNT写法的语义差异、性能表现和适用场景。结论可能会让你意外——但更重要的是,你会理解为什么COUNT慢、怎么优化、什么场景
文章被收录于专栏:
小耶转行干货分享
小耶转行干货分享
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系
cloudcommunity@tencent.com
删除。
sql
dba
count
mysql
目录
一、COUNT的语义:5种写法的完整拆解
二、COUNT的存储引擎原理:为什么InnoDB没有“总行数”?
三、执行计划分析:不同COUNT写法的真实差异
四、优化器视角:MySQL到底是怎么选索引的?
五、COUNT慢的5个真正原因
六、4种COUNT优化方案
七、总结
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档