AWS DynamoDB – 查询全局二级索引
全局二级索引是具有分区键和排序键的索引,可以与基表中的键不同。全局二级索引不是“全局的”,因为对索引的查询可以覆盖基表中所有分区的所有数据。全局二级索引没有像基表那样的大小限制,并且有自己的预置读写吞吐量设置,这些设置与表的设置是分开的。
让我们通过一个名为BoardExams 的基表来了解二级全局索引的使用,其中分区键为StudentID ,排序键为Stream。
表中的项目将按如下方式组织:
注意:上图中未显示所有属性。
现在,假设我们需要每个流的数学标记。同时使用StudentID和 Stream 会非常有效。但是假设我们只需要基于流而不是StudentID的数学分数。因此,将使用扫描操作,并且对于许多项目,它是低效的。因此,为了快速检索非关键属性的结果,我们使用二级全局索引。
例如,我们创建一个名为Stream-index的二级全局索引,分区键为Stream ,排序键为Maths。
注意:基表的主键属性始终投影到索引中,因此StudentID属性也存在。下图显示了 Stream-index 索引:
现在您可以查询 Stream-index 并轻松获取基于 Streams 的数学分数。结果按排序键值 Maths 排序。
查询创建的索引:
按照以下步骤查询上面创建的索引:
- 第 1 步:单击表名BoardExams,然后导航到表的Items选项卡。
- 第 2 步:从下拉列表中选择查询,然后针对查询,选择索引。见下图。
- 第 3 步:在 Partition Key 中,输入要获得数学分数的流名称。在我们的例子中,值是Science并且排序键是 Marks 应该大于 90 。见下图:
在上图中,我们看到了查询二级全局索引得到的结果集。