千家信息网

如何手动更新MYSQL 表的统计分析记录

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,如何手动更新MYSQL 表的统计分析记录,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。大致上大部分的数据库都有统计分析,主要的作用就是在
千家信息网最后更新 2026年11月02日如何手动更新MYSQL 表的统计分析记录

如何手动更新MYSQL 表的统计分析记录,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

大致上大部分的数据库都有统计分析,主要的作用就是在语句执行的情况下,能尽量的选择相对正确的方式来走执行计划,越准确的统计分析,可以带来更好的执行计划和数据库的语句执行性能,但相对来说越准确的统计分析,也会带来系统在统计时的性能消耗,越大的数据库系统,对统计分析的需求和要求也就越高。

从MYSQL 5.6 开始,统计分析的信息会固化在系统的存储中,通过下面的语句可以查看我们相隔的开关是否打开。

而在进行统计分析中都有一个采样率的概念,也就是根据估计索引列的基数和其他的统计信息要抽样的索引页的数量。其实这样算看似合理,但实际上如果挑选的索引页不具有代表性,这样的算法还可能会错误引导数据库的基本的统计分析的信息。这也就是为什么有时候明明建立了索引,却不走,在手动触发统计分析后,执行的结果有变化了的原因。默认抽样的页数是8 pages,我们可以改动默认抽样的页数,来达到提高准确率的功效。但同样付出的代价就是,在抽样时的消耗的I/O 和相关资源。

我们是可以定期对一些大表进行 analyze table 的,可以写一个定期的运行的脚本来完成此事,尽量达到统计分析的准确性。但通常一般都是通过自动触发的方式来完成这样的工作。

而我们可以进行一个测试,关于MYSQL的索引和真是的表信息之间是否有差距。

1 我们将需要检验的字段进行distinct 并且 count 返回的数据和我们建立索引的数据进行比对,看看是否有问题,对比两张图中的数据,可以清晰的发现,索引中的Cardinality 和实际中的字段的数据比较,是不一样的。

其实我们已经操作了analyze table 但是我们依然没有得到准确的数字,在平时这可能不会有什么问题,但如果是较大的表例如上千万的表,如果这方面错的比较错,会对执行计划产生问题,这时候可能就需要我们通过手动的方式来更新某些表的记录。

update mysql.innodb_table_stats set n_rows = 300024 where database_name = 'employees' and table_name = 'employees';

同理也可以更新 innodb_index_stats表里面的数据

以上方法仅仅使用于统计分析的不准确严重影响到了执行计划,一般我们还是不要动系统中的统计分析表,另外这样做的另一个问题就是, 你的表不会频繁更新的操作,并且你要找好自己更新数值的时间点。

看完上述内容,你们掌握如何手动更新MYSQL 表的统计分析记录的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

统计 统计分析 分析 数据 索引 更新 问题 手动 信息 数据库 系统 抽样 就是 方式 方法 语句 也就是 内容 原因 字段 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广东万易互联网科技有限公司惠州分公司 广州为想互联网科技有限公司 江苏根荣互联网科技 北京互联网科技 喔噻互联网科技 奇酷互联网络科技 成都互联网科技公司 唐信互联网科技 大连 青海省互联网新科技 金融科技与互联网金融相同和不同 湖北码尼互联网科技有限公司电话 消费医药和互联网科技 北京市互联网新科技 启辰互联网科技 皮皮虾互联网科技有限公司 互联网领先科技宣传片 广州梦谷互联网科技有限公司领导 唐山双旺合互联网科技产业园 互联网科技的前景 河南商务圈互联网科技有限公司 广州凡科互联网科技 深圳天众互联网科技公司 杭州壁岐互联网科技有限公司 呼和浩特新华互联网科技学院 众联互联网络科技 保山浩联互联网科技有限公司 互联网领先科技成果宣传视频 青岛互联网科技园 宁波允成互联网科技有限公司 六子台科技互联网展会
0