【 TiDB 使用环境`】预发环境
【 TiDB 版本】5.14
【遇到的问题】在批量查询数据的时候,会有部分数据查询不到,比例大概是每百万数据五六百条
【复现路径】基本只要连查询,就能复现
【问题现象及影响】因为查询数据有遗漏,所以导致业务查重遗漏,最终入库数据有重复,已经验证业务代码没问题。
另外,查看tidb日志,有大量4000端口连接服务集群的连接报错,显示连接被重置,不知道这是不是影响的主要原因?
- 首先看下执行计划
- 是否有使用tiflash
- 确定集群组件是否有异常
我们公司也是用的这个版本的tiflash,能把sql贴一下吗,我重现一下看看
用了啥复杂SQL吗?贴SQL出来看看
我们没有用tiflash
SQL很简单,就是单表的IN查询,查询参数还不超过50个
我在想是不是因为你用了分页,然后 order by 的参数有重复的,导致数据其实有重复出现的情况(一条数据由于排序值一样,可能出现在当前页尾和下一页)。
如果是这种情况,排序再加个唯一的 id 主键或其他字段保证唯一性。
https://docs.pingcap.com/zh/tidb/stable/sql-faq#省略-order-by-条件时-tidb-中返回结果的顺序与-mysql-中的不一致
解决了。发现两个原因,一个是升级到5.4导致的。退回版本就好了。另一个在退回版本后还是有偶发,然后发现是事务导致的,去查询的时候事务同时提交,导致事务隔离,所以没有查询到
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。