千家信息网

EXPLAIN和SHOW TABLE STATUS LIKE里返回的rows为什么不准确

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章给大家介绍EXPLAIN和SHOW TABLE STATUS LIKE里返回的rows为什么不准确,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。"SHOW TABLE S
千家信息网最后更新 2025年12月02日EXPLAIN和SHOW TABLE STATUS LIKE里返回的rows为什么不准确

这篇文章给大家介绍EXPLAIN和SHOW TABLE STATUS LIKE里返回的rows为什么不准确,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

"SHOW TABLE STATUS LIKE 里返回的 rows 为什么不是准确的啊 ?"今天,我就抽个时间简单的说一下!

首先,我们根据字面意思来看,rows 代表的行数。准确的说是受影响的行数,或者说是扫描的行数!

从理论上来说,我实际查询扫描了多少行数,应该是准确的。但是这里显示不准确,MySQL 统计的不准确,是 MySQL 故意这样设计的吗?如果是,那为什么要这样设计?

显然,不准确的这件事,MySQL 是知道的。那么它这样设计一定是有原因的。

我们都知道,MySQL 有一个优化器,它会对你的 SQL 进行一些优化。优化器的原理就是在真正执行 SQL 之前来估算一些每种执行策略的代价,选择一种它认为最好的方案去执行!

由于,优化器是在真正执行前做出的判断,所以它不可能是准确的。优化器,只能根据索引的"区分度"来统计、估算要扫描的行数。

在这里,MySQL 为了操作数据更高效。利用数学知识,做了一个抽样统计。

抽样,就是 InnoDB 默认会选择 N 个数据页,统计这些页面上的不同值,得到一个平均值,然后乘以这个索引的页面数,就得到了这个索引的基数。

以上也就解释了为什么 EXPLAIN 和 SHOW TABLE STATUS LIKE 里返回的 rows 不准确!

关于EXPLAIN和SHOW TABLE STATUS LIKE里返回的rows为什么不准确就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

统计 索引 设计 内容 就是 数据 更多 知识 说是 页面 帮助 抽样 选择 不同 不错 代价 代表 兴趣 原因 原理 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 抖音视频服务器多少钱一台 数据库中文章怎么表示 php数据库分页原理及实现 高中网络安全的漫画 戴尔服务器外壳螺丝怎么拆 巨杉数据库上班时间怎样 机房网络安全对策建议 崇明区软件开发怎么样 网络安全理论与技术实验报告 lol手游东南亚服务器名称 小程序如何连接本地数据库 北京美讯智网络安全有限公司 达梦数据库更改密码记录 内部网络安全会议 软件开发公司用项目管理软件 浦东新区网络软件开发创新服务 ns暗黑2服务器好了吗 万州区综合软件开发服务电话多少 金苗宝登陆显示无法连接服务器 学了网络技术可以做什么 软件开发课程结束异地 华三服务器安装完成闪屏进不去 华为服务器配置参数 网络安全征集活动 赞皇应用软件开发服务咨询报价 机房里面的服务器一般价格多少钱 安江服务器 河南省超越网络技术有限公司 制网络安全小报 大连云创互联网络科技有限公司
0