本文主要为您介绍表格存储(Tablestore)全局二级索引功能。

  • 主表与索引表之间异步同步,正常情况下同步延迟达到毫秒级别。
  • 支持单列索引及组合索引,支持索引表带有属性列(Covered Indexes)。主表可以预先定义若干列(称为预定义列),可以对任意预定义列和主表 PK 列进行索引,可以指定主表的若干个预定义列作为索引表的属性列(索引表也可以不包含任何属性列)。当指定了主表的某些预定义列作为索引表的属性列时,读索引表可以直接得到主表中对应预定义列的值,无需反查主表。例如:主表有 PK0、 PK1、 PK2 三列主键,Defined0、Defined1、Defined2 三列预定义列。
    • 索引列可以是 PK2,没有属性列。
    • 索引列可以是 PK2,属性列可以是 Defined0。
    • 索引列可以是 PK1、PK2,没有属性列。
    • 索引列可以是 PK1、PK2,把 Defined0 作为属性列。
    • 索引列可以是 PK2、PK1、PK0,把 Defined0、Defined1、Defined2 作为属性列。
    • 索引列可以是 Defined0,没有属性列。
    • 索引列可以是 Defined0、PK1,把 Defined1 作为属性列。
    • 索引列可以是 Defined1、Defined0,没有属性列。
    • 索引列可以是 Defined1、 Defined0,把 Defined2 作为属性列。
  • 支持稀疏索引(Sparse Indexes):如果主表的某个预定义列作为索引表的属性列,当主表某行中不存在该预定义列时,只要索引列全部存在,仍会为此行建立索引。但如果部分索引列缺失,则不会为此行建立索引。例如:主表有 PK0、PK1、PK2 三列主键,Defined0、Defined1、Defined2 三列预定义列,设置索引表 PK 为 Defined0、Defined1,索引表属性列为 Defined2。
    • 当主表某行中,只包含 Defined0、Defined1 这两列,不包含 Defined2 列时,会为此行建立索引。
    • 当主表某行中,只包含 Defined0、Defined2 这两列,不包含 Defined1 列时,不会为此行建立索引。
  • 支支持在已经存在的主表上进行创建、删除索引的操作。 支持新建的索引表中包含主表中的存量数据。
  • 查索引表不会自动反查主表,用户需要自行反查。后续版本将支持自动根据索引表反查主表的功能。