tiflash结果不正确

【概述】 场景 + 问题概述
查询走tiflash得到,结果不正确,特别是跟时间范围条件有关的SQL,遇到过多次结果有问题。
尝试 set @@session.tidb_allow_mpp=0 或者查询只走tikv; 发现结果就正确了,但是查询的速度就慢了。

【 TiDB 版本】
v5.1.1 tiflash3副本
【附件】 相关日志及监控(https://metricstool.pingcap.com/)


若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

1 个赞

麻烦发下SQL及其相关的执行计划。

tidb_sql.sql (1.4 KB) 执行计划.xlsx (11.3 KB)

有只走tikv 正确结果的执行计划吗?

执行计划.xlsx (14.0 KB)

看了下,
表wse在tikv和tiflash返回的行不一致(条件一致)
表dsb,tikv上是范围扫,返回1行;tiflash上是全扫,返回144W;
针对这两张表做下手动analyze ,再跑一次;
还可以select count(*) (打开mpp和关闭mpp)看看tikv和tiflash上实际行数是否一致

手动做了analyze,结果还是不正确;
select count(*) (打开mpp和关闭mpp)看看tikv和tiflash上实际行数是一致的

可以去掉其他表,只保留这两张表的关联查询,看看结果是否相同

保留两张表的关联查询,查询结果相同

可能得一张一张加回去试了;比如3张是否一样;4张是否一样


把这个表的关联去掉,结果就一致了

:joy: 可能得呼叫研发大佬看看是否是BUG了
如果可以的话,可以试试把is null 换成其他 等值条件(等于一个特定的值),看看结果是否还相等

结果还是不相同

请问这边有什么结论吗

可以发一下结果正确时候的执行计划吗?另外查询结果的规模有多大,可以截图发一下查询结果吗?

另外这些查询计划看起来只是 explain,能否发一下 explain analyze 的执行计划?

去掉一个表后的explain.xlsx (11.1 KB)

上面的执行计划不够准确,麻烦反馈下分别走 tikv 和 tiflash 的真实执行计划,即 explain analyze + SQL 的结果,多谢

explain-analyze.xlsx (18.2 KB)
这是查询30天的数据

tiflash:结果不对且条数少
99be787aa463eaac27f5ad4797f609b

tikv:结果对
e3b73b7bc3f0adc8c99abf4ad34d60c

查询5天的数据,tikv和tiflash是一致的,查询30天就不一致了