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 列值全局唯一。