【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】6.5.5
【复现路径】单表中在主键上设置RANDOM生成的ID是否是有序递增的
是自增的 不是有序递增
会,一次插入多行时
AUTO_RANDOM
列值的具体结构如下:
总位数 | 符号位 | 保留位 | 分片位 | 自增位 |
---|---|---|---|---|
64 bits | 0/1 bit | (64-R) bits | S bits | (R-1-S) bits |
- 符号位的长度由该列是否存在
UNSIGNED
属性决定:存在则为0
,否则为1
。 - 保留位的长度为
64-R
,保留位的内容始终为0
。 - 分片位的内容通过计算当前事务的开始时间的哈希值而得。要使用不同的分片位数量(例如 10),可以在建表时指定
AUTO_RANDOM(10)
。 - 自增位的值保存在存储引擎中,按顺序分配,每次分配完值后会自增 1。自增位保证了
AUTO_RANDOM
列值全局唯一。
随机自增的
此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。