1

我的问题很简单,我不想拥有一个大的 GSI 来映射来自许多我必须设置通用名称的实体的多个字段,例如field_GSI_1,我想为我拥有的每个实体创建一个单独的 GSI。

所以,让我们考虑两种情况。

场景 1、2 GSI

我的_GSI_1

Partition Key = "pk"
Range Key = "ok"

Projected attributes = "field_gsi_1", "field_gsi_2"

我的_GSI_2

Partition Key = "pk"
Range Key = "ok"

Projected attributes = "field_gsi_3", "field_gsi_4"

场景 2、1 GSI

我的_GSI_1

Partition Key = "pk"
Range Key = "ok"

Projected attributes = "field_gsi_1", "field_gsi_2", "field_gsi_3", "field_gsi_4"

问题是,场景 1 在按需模式下会更贵吗?因为场景 1 更易于管理和组织。

当然,这只是 2 个 GSI,但想象在一个真实场景中,我可以有 10 个 GSI 与 1 个。

4

1 回答 1

1

将 GSI 视为另一个 DDB 表...

所以在场景 1 中,对于每个插入,您需要支付 3 次写入而不是场景 2 中的 2 次。

更新期间同样适用;如果字段(1 或 2)和字段(3 或 4)同时更改。

我认为具有相同密钥和不同预测的两个 GSI 没有意义。

于 2019-05-03T14:42:57.400 回答