在分区表上创建索引,当需要保证全局唯一时,必须创建全局索引,这句话对吗

在分区表上创建索引,当需要保证全局唯一时,必须创建全局索引,这句话对吗

4 个赞

我觉得是对的吧

3 个赞

文中提到的OB问题很常见,通过优化使用环境和调整or配置,通常可以解决。

3 个赞

全局唯一索引,不是全局索引哦

2 个赞

了解下

1 个赞

@论坛小助手

1 个赞

在分区表上创建索引,当需要保证全局唯一时,如果索引键不覆盖所有的分区键,则必须创建全局索引。因为局部索引无法跨分区保证唯一性。但是,如果索引键覆盖了所有的分区键,那么也可以创建局部索引来保证全局唯一性。

详情请参考:

  1. 分区索引
  2. OceanBase 数据库在 MySQL 模式租户下的扩展功能
  3. OceanBase 数据库性能的影响因素
2 个赞

我觉得不对,例如按时间分区,然后时间字段是local唯一索引,这也可以保证全局一致性吧?

1 个赞

那你这个分区的字段上 不是创建了索引了么? 要保证唯一性 分区键要建索引的。
结论:
分区表上创建索引,当需要保证全局唯一时,必须创建全局索引。
规则:

  1. 如果唯一索引的索引键不包含主表的分区,必须创建全局索引。

  2. 如果唯一索引的索引键包含主表的分区键,可以选择局部索引或全局索引(优先局部索引)。

原因

  • 局部分区唯一索引的限制:索引键必须包含主表的分区键,否则无法保证跨分区的全局唯一性。

  • 全局分区唯一索引:没有此限制,可以保证跨分区的全局唯一性。

1 个赞