全部产品
云市场

DRDS 全局二级索引

更新时间:2019-11-04 10:20:29

DRDS 全局二级索引 (Global Secondary Index, GSI) ,允许用户按需增加拆分维度,提供全局唯一约束。每个 GSI 对应一张索引表,使用 XA 多写保证主表和索引表之间数据强一致。

DRDS Global Secondary Index

DRDS 全局二级索引能力:

  • 增加拆分维度
  • 支持全局唯一索引
  • XA 多写,保证主表与索引表数据强一致
  • 支持覆盖列,减少回表操作,避免额外开销
  • Online Schema Change,添加 GSI 不锁主表
  • 支持通过 HINT 指定索引,自动判断是否需要回表

DRDS 全局二级索引使用方式参考 DRDS 全局二级索引使用文档

FAQ:

  1. 全局二级索引解决什么问题?

    如果查询的维度与逻辑表的拆分维度不同,会产生跨分片查询。随着跨分片查询增多,会产生查询卡慢、连接池耗尽等性能问题。GSI 通过增加拆分维度来减少跨分片查询,消除性能瓶颈,创建 GSI 时需要注意选择与主表不同的分库分表键

  2. 全局二级索引和局部索引的关系?

    • 局部索引:分布式数据库中,如果数据行和对应的索引行保存在相同分片上,称这种索引为局部索引。DRDS 中特指物理表上的 MySQL 二级索引
    • 全局二级索引:不同于局部索引,如果数据行和对应的索引行保存在不同分片上,称这种索引为全局二级索引,主要用于快速确定查询涉及的数据分片
    • 两者的关系:需要搭配使用,DRDS 通过 GSI 将查询下发到单个分片后,该分片上的局部索引能够提升分片内的查询性能。