发布时间:2026/8/6 17:30:33
Mysql:count(1)和count(*)和count(主键字段)有什么区别? 一、三种写法分别是什么意思1.COUNT(*)SELECT COUNT(*) FROM users;表示统计结果集中的行数不管这一行的字段是否为NULL。这是最标准、最清晰的“统计行数”写法。2.COUNT(1)SELECT COUNT(1) FROM users;1是一个永远不为NULL的常量。对于结果集中的每一行MySQL 都可以得到一个非NULL的1所以最终统计的仍然是行数每行 - 计算出 1 - 计数加一因此对 InnoDB 来说COUNT(*) COUNT(1)MySQL 官方明确说明这两种写法处理方式相同没有性能差异。3.COUNT(主键字段)SELECT COUNT(id) FROM users;它统计的是id字段不为NULL的行数。如果id是真正的主键那么主键必然是NOT NULL因此COUNT(*) COUNT(1) COUNT(id)通常得到相同结果。二、举个例子表中有三行idnameremark1张三正常2李四NULL3王五正常执行SELECT COUNT(*) AS c1, COUNT(1) AS c2, COUNT(id) AS c3, COUNT(remark) AS c4 FROM users;结果是c1 3 c2 3 c3 3 c4 2原因COUNT(*)统计所有行COUNT(1)1永不为NULL统计所有行COUNT(id)id是主键全部非NULLCOUNT(remark)忽略remark IS NULL的那一行MySQL 中COUNT(expr)统计的是表达式不为NULL的数量而COUNT(*)统计行数。三、哪个性能最好对 InnoDB 来说通常结论是COUNT(*) COUNT(1)性能基本相同。如果主键字段是id BIGINT PRIMARY KEY那么COUNT(id)结果通常也相同但没有必要为了性能特意使用它。实际开发中推荐SELECT COUNT(*) FROM users;原因是语义最清晰表达的是“统计行数”MySQL 对它有明确的优化路径不会因为字段是否允许NULL而产生误差MySQL 官方说明InnoDB 会按照当前事务可见性统计记录并且对于没有额外WHERE、GROUP BY的COUNT(*)通常会遍历可用的最小二级索引没有二级索引时才扫描聚簇索引。所以实际性能主要取决于是否有合适的WHERE条件是否有合适的索引索引大小数据是否已经在 Buffer Pool 中当前事务可见的数据量表中数据规模而不是取决于*、1还是主键字段。四、一个容易出错的场景LEFT JOIN考虑SELECT u.id, COUNT(*), COUNT(o.id) FROM users u LEFT JOIN orders o ON u.id o.user_id GROUP BY u.id;假设用户张三没有订单。LEFT JOIN仍然会保留张三这一行只是订单表字段全部为NULLu.id o.id 1 NULL因此COUNT(*) 1 COUNT(o.id) 0这里两者含义不同COUNT(*)统计连接结果中的行数COUNT(o.id)统计真正匹配到订单的数量因此统计子表数量时经常应该写COUNT(o.id)而不是COUNT(*)五、MyISAM 的特殊情况如果使用 MyISAM且查询是SELECT COUNT(*) FROM users;没有WHERE条件时MyISAM 可以利用存储的行数信息快速返回结果。但 InnoDB 不保存一个可以直接返回的精确总行数因为不同事务可能看到不同的数据版本。不过现在绝大多数业务表使用 InnoDB所以通常记住 InnoDB 的结论即可。

相关新闻

2026/8/6 17:30:33

VisualCppRedist AIO:终极Windows运行库修复工具完全指南

VisualCppRedist AIO:终极Windows运行库修复工具完全指南 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾因"找不到MSVCP140.dll"…

2026/8/6 17:30:33

2026最新!英语老师都在用的1款听说软件推荐

【摘要:】 我深耕英语听说领域教研5年,踩过不少智能工具的坑,今天结合实测数据拆解英语听说训练的核心痛点,分析主流AI工具的技术逻辑,给老师、学生做客观选型参考,无广告全是实操经验。英语听说教学的真实…

2026/8/6 21:35:51

5分钟快速上手:免费跨平台智能资源下载器完整指南

5分钟快速上手:免费跨平台智能资源下载器完整指南 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 还在为下载各类…

2026/8/6 21:35:51

DevEco CLI 快速入门:让 AI Agent 更懂 HarmonyOS 应用开发

本原创文章帖发布在华为开发者联盟社区,欢迎开发者前往访问评论交流,更多与该内容相关讨论,请点击原帖查看: DevEco CLI 快速入门:让 AI Agent 更懂 HarmonyOS 应用开发 各位开发者好!随着AI辅助研发成为日…

2026/8/6 21:35:51

070、YOLOv11改进-动态标签分配策略即插即用改进涨点方案

070、YOLOv11改进-动态标签分配策略即插即用改进涨点方案 昨天调了一整晚的YOLOv11,发现一个老问题又冒出来了——小目标漏检。训练日志里loss降得挺漂亮,mAP看着也还行,但一上实际场景,那些小尺寸的、遮挡严重的物体就是死活检测不到。我盯着验证集上的漏检样本看了半天,…

2026/8/6 21:30:51

智能体系统中的上下文工程与记忆工程

1 引言 当 AI 智能体[1] 进入更长的工作流和多会话场景,一个熟悉的模式会出现:约束在中途被丢弃,不该再出现的检索信息又冒出来,上一步的上下文渗进当前步骤。这类故障很难定位,因为没有哪一个组件看起来明显出了问题。…

2026/8/5 3:13:11

如何用免费工具突破游戏窗口限制:SRWE完整使用指南

如何用免费工具突破游戏窗口限制:SRWE完整使用指南 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE 你是否遇到过这样的困扰?想为心爱的游戏截图,却发现游戏不支持自定义分辨率…

2026/8/6 0:04:22

电力系统调度中的源荷不确定性建模与优化实践

1. 电力系统调度中的源荷不确定性挑战现代电力系统正面临前所未有的复杂性,其中源荷不确定性(Source-Load Uncertainty)已成为调度决策中最棘手的难题之一。我在参与某省级电网调度系统升级时,曾遇到风电预测误差导致日内调度计划…

2026/8/6 0:04:22

VGG-T3技术解析:3D重建速度的革命性突破

1. 项目概述:VGG-T3如何重新定义3D重建速度在计算机视觉领域,3D场景重建一直是个计算密集型任务。传统方法重建1000帧图像规模的场景往往需要数小时甚至更长时间,而英伟达最新发布的VGG-T3技术将这个时间压缩到了惊人的54秒。这个突破性进展来…

2026/8/6 0:04:22

深度解析旅游网站建设的意义及其对行业发展的深远影响与核心价值体现

在这个数字化浪潮席卷全球的今天,我们似乎已经忘记了,曾经有一段时间,人们想要去一个陌生的地方,只能靠在书桌前翻阅厚厚的旅游杂志,或者向刚从那里回来的朋友询问那些模糊不清的印象。那时候,“远方”是一个需要精打细算才能抵达的奢侈概念。而现在,只需要一部手机,轻…

2026/8/5 19:21:13

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/5 19:21:13

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/6 20:45:01

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…