tidb主键id查询异常会返回多条数据!帮忙看看是不是bug?

我们集群是通过ticdc备份的,请教一下如果在主集群通过 _tidb_rowid进行删除,会不会影响到下游集群的数据

有下游是会的

这种是属于异常情况的

你这种情况大概率是主表,和索引里的数据不一致导致的,用admin check table应该会报错。
题主的问题还不太一样,主键查询就出现问题了,执行索引看起来也没什么问题

执行了这个命令,没报错!是桌面工具执行的
1 queries executed, 1 success, 0 errors, 0 warnings

查询:admin check table tbl_rebate_settle_info

共 0 行受到影响

执行耗时 : 0.267 sec
传送时间 : 0.007 sec
总耗时 : 0.275 sec

开启下general log,让研发那里手动调用一次,获取下真实的sql,感觉不像是数据库层的问题

我这个是cluster表,没有_tidb_rowid这个id吧

不能信研发的,开日志看吧,或者去dashboard 看 sql 语句分析

这个任务每天都跑,类似查询很多,不是每次都会发生!开全量得考量下 :sweat_smile:,而且昨天和今天发生的id都是一个值,也是奇怪了!

的确报这个错

官方文档上说删除并重建索引,这个代价有点大。。

应该就是表和索引不一致了,主键索引也是索引,一种就是索引删除重建,一种就是 ADMIN RECOVER INDEX,前者影响较大,后者影响小,但是因为是单进程的,需要恢复时间较长。

1 个赞

但是多条数据也是真实存在的

1 个赞

:thinking:如果表数据量不大 ,重建表导数据吧。如果表数据量比较大,就开启general_log观察几天。

嗯,多谢,昨天重建了表,今天暂时没出现类型情况,再观察几天试试!

1 个赞

:handshake::handshake::handshake: 确实挺奇怪的