3

我有一个具有两个属性的 dynamoDB 表:


A:主分区键

B:主排序键


我想使用属性 B 查询此表,因为我不知道 A 的值。可以这样做吗?

是否可以将 B 设为 GSI(全局二级索引),如何使用 B 执行和查询表,因为 B 已经是排序键。

4

1 回答 1

5

您需要分区键来查询 - 您不能单独使用排序键来执行此操作。你只能扫描。

因此,您唯一的出路是创建一个以 B 作为分区键的 GSI。

更新

是的,您可以使用范围键作为 GSI。

使用 GSI 的缺点是:

  • 每个表最多只能有 5 个 GSI,因此请明智地选择您需要索引的内容,因为 GSI 只能在表创建期间指定并且不能更改。
  • GSI 将花费您额外的费用,因为您需要为其分配预置吞吐量。
  • GSI 是最终一致的,这意味着 DynamoDB 不保证与表的哈希键关联的数据写入数据库的那一刻,数据的 GSI 哈希键立即可供查询。该文档指出,这通常是即时的,但可能需要几秒钟才能使 GSI 散列密钥可用。
于 2018-09-17T21:16:40.997 回答