创建Global Secondary Indexes

Reply表上创建一个GSI。这个新的GSI将使用PostedBy属性作为分区(HASH)键,我们仍然将消息按ReplyDateTime排序为排序(RANGE)键。我们希望将表中的所有属性复制(投影)到GSI中,因此我们将使用ALL投影类型。我们创建的索引名称为PostedBy-ReplyDateTime-gsi。 GSI可以随时创建和删除,即使表中已经有数据。

导航到Reply表,切换到Indexes选项卡,然后单击create index

image-20241226163109735

输入PostedBy作为分区键,ReplyDateTime作为排序键,PostedBy-ReplyDateTime-gsi作为索引名称。将其他设置保留为默认值,然后单击创建索引

image-20241226165317693

等待状态变为Active:

image-20241226163327091

使用GSI进行查询

在DynamoDB中使用GSI时,我们必须明确告诉DynamoDB使用索引而不是表。

在GSI上运行查询与在表上运行查询没有什么不同,只是我们需要选择要使用的GSI,并在KeyConditionExpression中使用GSI键属性。

找到由用户A编写的所有回复:

image-20241226170104648

删除GSI

返回到索引选项卡,选择PostedBy-ReplyDateTime-gsi索引,然后单击删除