📜  AWS DynamoDB – 查询全局二级索引

📅  最后修改于: 2022-05-13 01:57:09.796000             🧑  作者: Mango

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 见下图:

在上图中,我们看到了查询二级全局索引得到的结果集。