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 語法

相關文章
相關標籤/搜索