如何把TIDB5.1版本(A集群)中全部的bind执行计划,方便的迁移到TIDB7.5版本(B集群)?

备份binding执行计划
mysql -uroot -h127.0.0.1 -P4000 -p -NBe "select * mysql.bind_info\G" > /home/db/tidb/bing_info$(date +"%m%d").txt

反向创建binding执行计划
mysql -uroot -h127.0.0.1 -P4000 -p -NBe "SELECT concat('use  ', default_db,';', 'CREATE GLOBAL BINDING for ', original_sql ,' using ', bind_sql ,';') from mysql.bind_info  order by create_time" > /home/db/tidb/bind_info$(date +"%m%d").sql

恢复则通过 source 进行恢复即可,涉及到 sql_digest,plan_digest 应该可以传入 '' 空值,因为不是必须的,只为新版本为了方面绑定执行计划精确,可以通过 SQL 执行计划演进的功能,结合 v7 版本的下推计算等优化,重新演进新的执行计划提升查询性能。

另外可以尝试 BR 提供的 备份恢复绑定执行计划的功能 恢复系统表中存储的执行计划绑定信息

1 个赞