在v5.3.0版本之后引入了tidb_analyze_version=2的参数值,请问这个是修复了上个版本的故障吗?

【 TiDB 使用环境】生产环境
【 TiDB 版本】TiDB 5.1.4
【复现路径】在TiDB 5.1.4测试sql的执行计划和升级到TiDB 7.1.0 同时设置tidb_analyze_version=2测试了同一个sql的执行计划
【遇到的问题:问题现象及影响】
原来在TiDB5.1.4版本下的一个sql的执行计划选择的索引都是正确的,突然有一天开始发现TiDB 5.1.4此sql的执行计划走的索引是错误的,而TiDB 7.1.0走的索引的执行计划是正确的,请问这是TiDB 5.1.4版本有此故障,而新版修复了此故障吗?

不同版本tidb-server的内部优化肯定会不一样,会有调整,除去解析的差异,表统计信息的变化也会引起执行计划的改变

这种算TiDB版本有故障吧?

我记得5.3以前默认tidb_analyze_version是2(当时还是实验特性),导致出现了问题,然后当时的解决方案就是把统计信息都删除,然后调整tidb_analyze_version为1,再整库收集一下统计信息。可以看到下面的修复方案,也是把默认值改成了1。5.3以上版本是没有这些问题的(不记得具体的版本是啥了)。

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。