TIDB 自增ID 后插入数据ID小

业务同窗碰见这样的一个问题mysql

select * from t where id>100 order by id asc limit 200;sql

发现只查到了10个数据并发

最小的id是101,最大的id是130spa

而后去控制台执行线程

select * from t where id>100 and id<=130;code

发现又能获取到30个数据server

 

推测是TIDB自增ID有问题,先写入了ID大的值,后写入了ID小的值文档

 

查到在TIDB官方文档上有解释get

https://pingcap.com/docs-cn/stable/faq/tidb/it

1.1.22 TiDB 中,为何出现后插入数据的自增 ID 反而小?

TiDB 的自增 ID (AUTO_INCREMENT) 只保证自增且惟一,并不保证连续分配。TiDB 目前采用批量分配的方式,因此若是在多台 TiDB 上同时插入数据,分配的自增 ID 会不连续。当多个线程并发往不一样的 tidb-server 插入数据的时候,有可能会出现后插入的数据自增 ID 小的状况。此外,TiDB容许给整型类型的字段指定 AUTO_INCREMENT,且一个表只容许一个属性为 AUTO_INCREMENT 的字段。详情可参考CREATE TABLE 语法

相关文章
相关标签/搜索