OceanBase 中全局索引和局部索引有什么区别?分别适用于什么场景?

OceanBase 中全局索引和局部索引有什么区别?分别适用于什么场景?

局部索引: 索引分区与主表分区一一对应,索引键只映射到本分区内的数据,物理位置与主表分区一致。

全局索引: 索引分区与主表分区独立,一个索引键可能映射到多个主表分区,可以是非分区索引,也可以按自己的规则分区。

默认行为: 分区表上创建索引时,MySQL 模式默认创建局部索引,Oracle 模式默认创建全局索引。

适用场景:

  • 局部索引: 查询条件包含分区键,可通过分区裁剪直接定位分区,写入性能好,维护成本低。
  • 全局索引: 查询条件不包含分区键,或需要全局唯一约束时,可避免全分区扫描,但写入可能引入分布式事务,影响并发写性能。