TDSQL for MySQL修改统计信息参数

在日常运维及性能分析中,我详细很多朋友都遇到过执行计划选错索引,统计信息更新不及时,优化器判断错误等场景。

在 MySQL 架构中,InnoDB 管理数据并维护统计信息,Server 层优化器则基于这些统计信息生成执行计划。当 innodb_stats_notify_change = OFF 时,即使 InnoDB 在后台自动更新了统计信息(比如索引区分度 rec_per_key),也不会主动通知优化器,优化器会继续使用缓存的旧统计信息来生成计划。如果再叠加上 txsql_recalc_table_stats_after_manual_close = OFF,那么即使表被手动关闭后重新打开,也不会触发统计信息重算,进一步加剧了统计信息陈旧的问题,最终导致选错索引

一、检查参数

可以通过赤兔检查、也可以登录实例检查,接下来以赤兔为例

​​​

执行SQL检查

show variables like 'innodb_stats_notify_change'; show variables like 'txsql_recalc_table_stats_after_manual_close';

sql 复制代码
show variables like 'innodb_stats_notify_change';
show variables like 'txsql_recalc_table_stats_after_manual_close';

二、登录DB节点进行修改

示例以这个实例为基础,生产环境请改成对应的端口

修改参数

切记换成对应的实例端口号和set_id

需要修改的参数如下

.../conf/mysqlagent_4006.xml 换成对应的端口

--name=set_1778464209_8 换成对应的set_id

bash 复制代码
#进入工具目录,请选择相对应的端口 
cd /data/tdsql_run/4006/mysqlagent/bin/ 
#执行命令修改第一个参数,请注意修改实际的set_id
./mysql_param_modify --agent-conf='../conf/mysqlagent_4006.xml' --mode='modify' \ --param='param=innodb_stats_notify_change&value=ON' \ --name='set_1778464209_8'

完成后会出现Success! 和参数value变成ON

修改第二个参数,只需要改变--param值即可

bash 复制代码
#进入工具目录,请选择相对应的端口 
cd /data/tdsql_run/4006/mysqlagent/bin/ 
#执行命令修改第一个参数,请注意修改实际的set_id 
./mysql_param_modify --agent-conf='../conf/mysqlagent_4006.xml' --mode='modify' \ --param='param=txsql_recalc_table_stats_after_manual_close&value=ON' \ --name='set_1778464209_8'

三、登录赤兔检查

执行同样的SQL

sql 复制代码
show variables like 'innodb_stats_notify_change'; 
show variables like 'txsql_recalc_table_stats_after_manual_close';

相关推荐
2501_9336707920 小时前
2026秋招数据分析岗备考路线:SQL、BI、项目与面试题拆解
数据库
我要见SA姐11 天前
告别 Copilot?Codex 本地化部署指南
运维·数据库·机器学习·oracle·回归
xcLeigh1 天前
聊聊国产化替换:好用数据迁移工具KDMS怎么帮咱们搞定评估难
数据库·sql·数据迁移·kes·kdms
Elastic 中国社区官方博客1 天前
列式存储并不等同于列式数据库。Columnar 模式为 Elasticsearch 带来了什么
大数据·运维·数据库·elasticsearch·搜索引擎
我要见SA姐11 天前
用 Claude Code 重构遗留系统:从评估到落地的完整实践指南
数据库·ide·vscode·oracle·编辑器
Nturmoils1 天前
一份 KDMS 评估报告,怎样排出迁移先后顺序
数据库
这个DBA有点耶1 天前
异构数据集成怎么做?5 种同步方案对比 + 金融级 CDC 实战解析
数据库·oracle·架构
独泪了无痕1 天前
SQL函数实战:GREATEST与LEAST的技巧
数据库·sql·mysql
码少女1 天前
Linux--多路转接之select
java·服务器·数据库
梁辰兴1 天前
软件工程:软件维护的副作用
数据库·软件工程·梁辰兴·控制方法·软件维护的副作用·副作用类型·副作用原因