OceanBase V4 中,局部索引和全局索引有什么区别?各自适用什么场景?

OceanBase V4 中,局部索引和全局索引有什么区别?各自适用什么场景?

局部索引的分区规则与主表一致,每个分区只维护本分区内的索引数据,索引分区与主表分区一一对应,通常存放在同一节点上。

全局索引跨所有分区存储,索引分区与主表分区没有固定对应关系。

主要区别:

  • 维护成本 :局部索引只维护本分区,维护成本低;全局索引可能引入跨机分布式事务,维护成本更高。
  • 唯一性 :局部索引只能保证分区内唯一;全局索引可以实现全局唯一约束。
  • 查询路径 :查询带完整分区键时,局部索引可配合分区裁剪;查询不带分区键时,全局索引可避免全分区扫描。

适用场景:

  • 局部索引 :查询条件包含分区键、写入频繁、维护成本敏感的场景。
  • 全局索引 :需要全局唯一约束、查询不含分区键、存在索引热点、或索引能覆盖查询避免回表的场景。