首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >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
60
举报
概述
COUNT(*)和COUNT(1)哪个更快?这个问题在技术论坛上吵了十几年,答案从“一样快”到“COUNT(1)更快”到“COUNT(*)更快”反复横跳。每次MySQL发新版本,就有人拿出来重新测一遍。本文从执行计划、存储引擎、索引选择、优化器行为四个层面,完整拆解5种COUNT写法的语义差异、性能表现和适用场景。结论可能会让你意外——但更重要的是,你会理解为什么COUNT慢、怎么优化、什么场景

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 一、COUNT的语义:5种写法的完整拆解
  • 二、COUNT的存储引擎原理:为什么InnoDB没有“总行数”?
  • 三、执行计划分析:不同COUNT写法的真实差异
  • 四、优化器视角:MySQL到底是怎么选索引的?
  • 五、COUNT慢的5个真正原因
  • 六、4种COUNT优化方案
  • 七、总结
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档