在tidb日志里面看到有写冲突索引冲突的信息,我想查到indexValues值对应的数据是什么,怎么查呢?怎么确定这个数据有没有插入成功。
[2024/01/13 10:15:51.856 +08:00] [WARN] [session.go:461] [sql] [conn=742556] [label=general] [error=“[kv:9007]Write conflict, txnStartTS=446984917998895106, conflictStartTS=446984917998895106, conflictCommitTS=446984917998895106, key={tableID=104, indexID=1, indexValues={a6bc6fe325a44ad29004a451ac9cd134, }} primary={tableID=104, indexID=1, indexValues={a6bc6fe325a44ad29004a451ac9cd134, }} [try again later]”] [txn=“Txn{state=invalid}”]
通过tableID=104, indexID=1查找表和索引有可能,可找到具体值怕有困难
理论上是可以的。
我看到官方文档写的是: * key={tableID=47, indexID=1, indexValues={string, }}
:表示当前事务中冲突的数据,tableID 表示发生冲突的表的 ID,indexID 表示是索引数据发生了冲突。如果是数据发生了冲突,会打印 handle=x
表示对应哪行数据发生了冲突,indexValues 表示发生冲突的索引数据
我也以为是可以找到是可以看到索引数据的,但是官方文档搜indexvalues 没找到相关的信息
新版本写数据冲突,tidb server日志能看到sql语句啊
我才4.0版本呀
找到了。indexValues={a6bc6fe325a44ad29004a451ac9cd134, 这个就是对应表里面的实际的值。不需要什么内部转换 打扰了各位
如果这个字段是敏感信息,打印到日志好像不太好
此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。