OceanBase 中自增列 AUTO_INCREMENT 特性,错误的是()

OceanBase 中自增列 AUTO_INCREMENT 特性,错误的是()
A. 默认分区内自增,不保证全局有序
B. 可以通过设置开启全局自增模式
C. 全局自增完全无性能损耗
D. 无主键表建议不要依赖业务自增逻辑

3 个赞

选C
C选项说法是错误的。 性能与连续性是一对需要权衡的指标。全局自增(ORDER 模式)为了确保全局连续性,采用的是“集中缓存”机制,在高并发场景下需要进行跨节点的协调通信,其性能是低于 只保证唯一性的 NOORDER 模式的。 性能与全局有序性不可兼得,ORDER 模式(全局自增)是有性能损耗的

1 个赞
  • A 对:OB 默认分区内自增,全局唯一但不严格递增有序。
  • B 对:可通过参数配置开启全局自增模式。
  • C 错:全局自增要跨分区协调、申请号段,有网络和锁性能损耗,不是无损耗。
  • D 对:无主键表隐藏主键由 OB 维护,不适合业务依赖自增逻辑。
1 个赞

选择C
错误:全局自增模式下,OB 会向 OBServer 节点分发自增 ID 段,存在跨节点协调和锁开销,并非 “完全无性能损耗”,并发写入时性能会有一定影响。

其它选项正确

  • A 正确:OceanBase 自增列默认是分区内自增,仅保证单分区内有序,不保证全局有序,适合分布式写入场景。
  • B 正确:可通过设置 auto_increment_mode 开启全局自增模式,确保所有分区的自增 ID 全局唯一且有序。
    D 正确:无主键表依赖自增列作为业务逻辑键,容易因分布式特性导致冲突或性能问题,因此不建议依赖。
1 个赞

选C

选C