tidb自增列跳跃

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:3.0.8
  • 【问题描述】: 我们在迁移一些数据的时候,使用多线程批量写入,这样会造成一小部分自增ID跳跃(可能是分配自增ID后事务回滚),但是最近发现一个更奇怪的问题。 image 本来才自增到86511 但是新增一列却到了109815,在这之前检查过(show create table)以及information库的tables表 也都是109814。我现在想知道为什么突然跳开这么多,程序那边也是一次批量写入1w,难道是最后两次都写失败了吗,但是数据又是都导入完了的。 有什么排查这次自增异常的思路呢。

看下这里介绍:https://pingcap.com/docs-cn/stable/reference/mysql-compatibility/#自增-id

但是我是只连接一台sever做的数据迁移

根据给出的描述信息不好判断,辛苦给一份 tidb-server 的完整日志。

请问 tidb-server 是否重启过?如果有,那么缓存的自增列 ID 会全部废弃。

另外,方便的话请提供一下表结构。目前 TiDB 的自增 ID 与内部的 rowID 共用一个序列空间,也可能是内部的 rowID 占用了一部分。

因为有删除日志,刚好日志被都清空了 。。。

很奇怪,前几天还是109815 现在show create table 查看自增已经到139815 但是数据库没有新的数据进来

从结果上来看是系统重新获取了一批新的 ID,每批 30000 个