我在DynamoDB有下一张表。ID是分区键,类别是排序键。ID-1和ID-2是GSI。ID-1和ID-2中的值以字符串的形式出现,比如"list1,list2“。我有一种情况,我必须搜索in 1和in 2列。例如,我想看看list7是否存在于任何列中。
在这种情况下,
ID[Number] Category[String] IDs-1[String] IDs-2[String]
1 category1 list1, list2
2 category2 list7, list8
3 category1 list3, list4
4 category2 list5, list6
我将在这个表中总共有大约10K个条目。
在DynamoDB中扫描GSI和扫描整个表有什么区别?
谢谢
发布于 2020-06-30 06:26:33
如果整个数据模式相同,对这两种数据的扫描在RCU (读取信用单位)方面仍然有相同的成本。A GSI将有自己的学分,因此这些将从其池中扣除。
查看您的数据,我可以看到一些值丢失了属性,根据文档,这意味着它们将不包括在内。由于这个原因,扫描会稍微便宜一些,因为GSI中的数据较少。
全局辅助索引只跟踪其关键属性实际存在的数据项。例如,假设您向GameScores表添加了另一个新项,但只提供了所需的主键属性。
此外,如果属性投影较少,这可能会影响成本(对于一个4KB的项目,1个RCU等于1个强一致读取,或者2个最终为一致读取),因此,如果您的项目的大小由于在GSI中拥有较少的属性而更改在4kb以下,您将支付更少的费用。
https://stackoverflow.com/questions/62651004
复制相似问题