同样的数据,同样的SQL,在tidb和MySQL上执行的结果不一致

MySQL执行计划:


MySQL执行结果:


每次都是59条

麻烦提供下具体3个表的表结构,以及 TIDB 完整的 explain analyze 的截图。

TIDB 完整的 explain analyze:执行计划.xlsx (12.3 KB)
表结构:table.sql (5.1 KB)

执行3次的执行计划:执行计划.xlsx (14.6 KB)

我们这边再测试一下。

好的,麻烦老师了,已经有初步的结论了吗?

还没有,正在解决中。

好的,麻烦了

老师,你好,又结论了吗?

还没有,研发还在分析中。

哦,好的,麻烦老师了

你好,现在还能复现这个问题吗,可以导出一下统计信息的json文件以便我们本地复现吗。 导出统计信息的方法参考:https://pingcap.com/docs-cn/dev/reference/performance/statistics/#统计信息的导入导出

统计信息.7z (602.5 KB)
老师好,这个是统计信息

@tuyi
您好,麻烦跑几遍这条 sql,看看结果行数是否稳定
test.sql (1.6 KB)

如果不稳定的话,拿几次 explain analyze 的结果,并上传回来,谢谢

运行结果不稳定,中间还出现一个报错
Error CODE: 1105
interface conversion: interface {} IS nil, NOT types.Time

EXPLAIN ANALYZE
explain.xlsx (12.5 KB)

@tuyi 能否从 tidb 日志中,grep 下这条 error log,把对应的错误栈贴一下

error.log (4.0 KB)
这是对应的错误日志

@tuyi 您好,我们本地尝试复现但是没复现成功 可以的话能麻烦提供部分可以复现问题的,脱敏的表数据吗

看了下上传的执行计划,可能会触发 IndexJoin 存在的 Bug,导致结果不稳定。这个 Bug 在 3.0.10 版本进行了修复,建议升级到 3.0.10 及以上的版本再看下结果。