我的问题很简单,不是要有一个大的GSI来映射许多我必须设置通用名称(例如field_GSI_1
)的实体的几个字段,而是要为我拥有的每个实体创建一个单独的GSI。 / p>
因此,让我们考虑两种情况。
My_GSI_1
Partition Key = "pk"
Range Key = "ok"
Projected attributes = "field_gsi_1", "field_gsi_2"
My_GSI_2
Partition Key = "pk"
Range Key = "ok"
Projected attributes = "field_gsi_3", "field_gsi_4"
My_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个。
答案 0 :(得分:1)
将GSI视为另一个DDB表...
因此,在方案1中,对于每个插入,您要支付3次写入,而不是方案2中的2次。
在更新期间同样适用;如果字段(1或2)和字段(3或4)同时更改。
我不认为两个具有相同密钥和不同投影的GSI有意义。