Tidb删除数据遇到8141问题

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】V7.1.1
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】
在删除数据时,遇到了8141问题。删除语句如下:
delete from t_en where eid=‘12334adfasfd’ and id=‘adfadfsere34132’,Tidb返回的结果是


官方有解释8141问题,入下图:

但是对这个解释有些懵圈,既然我是删除数据,不管存在还是不存在不都应该执行删除操作么?

我理解这是数据和索引不一致导致的报错吧,你先 ADMIN CHECK TABLE 检查一下,如果索引不一致了,重建索引后再继续删除数据

ADMIN CHECK TABLE 这个怎么操作呢

感觉是MVCC的一种处理方式。

ADMIN CHECK TABLE tbl_name;
ADMIN CHECK [TABLE|INDEX] | PingCAP 文档中心

2 个赞

check table 命令或者其他工具来检查数据是否一致

我也遇到了,不知道怎么解决,bug?

事物隔离级别配置了什么

这个bug已经好久了

都是已知的问题了,先修复index 的数据,一致后在执行删除就好了

还有个办法,先把索引删了… :see_no_evil:

1 个赞

删除索引:先通过索引找到数据 ,然后在进行删除, 不仅仅是删除的含义吧

学习了

学习了

索引删除重建

先删索引试试呢

确定了是索引和数据不一致的问题吗?

同问,什么时候会触发?
删索引可是一个危险操作。admin check table如果不能解决如何整?

感觉tidb的bug有点多,总是报一些莫名其妙问题,与其频繁更新版本,还不如减少频次,尽量减少bug

1 个赞

已知问题,索引和数据不一致,建议先添加一个联合索引(包含问题列索引的),这样可以保证你业务的连续性,然后再删除问题索引,然后再重建问题索引,如果还是有问题就升级解bug吧

1 个赞

这个感觉是正解