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