全局分区索引、全局非分区索引、局部索引的区别?

全局分区索引和局部索引看起来是一样的,都是索引跟着分区走?能比较形象解释下吗

4 个赞

@论坛小助手

全局分区索引、全局非分区索引和局部索引的主要区别在于它们如何处理数据的分区和索引键的关系。以下是具体的解释和比较:

  1. 局部索引(Local Index)

    • 局部索引的分区键与主表的分区键相同,每个主表分区有一个对应的索引分区。
    • 局部索引的数据结构与主表的数据结构保持一对一的关系,每个索引分区只映射到自己分区中的主表数据。
    • 优点:维护成本低,查询性能好,尤其是在分区裁剪方面。
    • 缺点:索引键必须包含主表的分区键,限制了索引的灵活性。
  2. 全局分区索引(Global Partitioned Index)

    • 全局分区索引有独立的分区规则,可以有自己的分区策略,不依赖于主表的分区键。
    • 一个索引分区可能对应主表的多个分区中的数据,这使得索引可以跨越多个主表分区。
    • 优点:灵活性高,可以满足更多复杂的查询需求,尤其是当索引键不包含主表分区键时。
    • 缺点:维护成本高,查询时可能涉及跨节点的RPC调用,影响性能。
  3. 全局非分区索引(Global Non-Partitioned Index)

    • 全局非分区索引是一个不分区的索引,索引数据覆盖整个主表。
    • 优点:简单,易于理解和管理。
    • 缺点:性能较差,尤其是当主表数据量很大时,查询性能会显著下降。

形象地解释:

  • 局部索引就像是一个图书馆中按书架分类的目录,每个书架(分区)有一个目录(索引),目录只记录该书架上的书籍(数据)。
  • 全局分区索引则像是一个图书馆中按作者分类的目录,每个作者(索引分区)的目录记录了所有书架(主表分区)上该作者的书籍(数据)。
  • 全局非分区索引则像是一个图书馆中按书名分类的目录,目录记录了所有书架上所有书籍的信息,但不分作者或书架。

检索到的文档如下:

  1. 分区索引
  2. 索引概述
  3. 集群管理 FAQ
  4. 局部索引
  5. OceanBase 数据库性能的影响因素
  6. OceanBase 数据库在 MySQL 模式租户下的扩展功能
  7. 使用 OceanBase 数据库分区表进行水平拆分
4 个赞

这类问题可以问小助手,要尝试让小助手融入自己的工作和学习中

1 个赞

小助手越来越专业了

谢谢分享,对我帮助很大

2 个赞

期待答案

1 个赞

牛啊 ,真厉害

好 下次试试

有点理解了

了解下

小助手棒 :+1:

学习了,对各种索引更清楚了一点

学习了