tidb delete加条件删数据失败

之前5.4 遇到过 insert 或者 update 数据之后。执行 select,提示 tiflash 找不到 region。貌似与这个也类似。列存副本同步延迟?

从描述的操作来看应该是这个问题:https://github.com/pingcap/tiflash/issues/4956

原因是 TiFlash 在做数据分裂 (Segment Split) 的时候,有部分数据块会在分裂后在查询时通过 key-range 过滤,达到逻辑删除的效果。但是后面执行 delete from ... 数据被大量删除之后,在 Segment Merge 的过程中没有正确处理这些边界外的数据,导致数据区间合并后本应被删除的数据又重新被查询到了。

对于 v5.4 分支,这个问题在 v5.4.2 上修复了。操作层面没有好的 workaround 方法。
建议升级到 v5.4 最新的 patch 版本或者 LTS 分支的最新版本,避免这个问题再次出现。

https://docs.pingcap.com/zh/tidb/stable/release-5.4.2

1 个赞

没其他报错吗,返回信息也只是删了31条吗

解决了吗?

1 个赞

我感觉你理解错了好像,rename了表名,tiflash里应该也rename了吧。

操作太快了,数据都删完了,空表了。恢复tiflash =1也没数据了

我这个看着是相反,应该是执行delete tikv数据删了,tiflash没删掉,能查tiflash数据出现。

看着有可能是这个原因。我看看能不能5.4复现,然后再v5.4.2以上试试

嗯,这种一般是tiflash问题,tiflash数据都是从tikv同步过来的,这种情况就是tikv正常删除了,但是同步到tiflash异常了,导致tikv查不到,但是tiflash还能查到。。

关注下进度,第一次碰到

这个问题太奇怪了

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