- 最新
- 投票最多
- 评论最多
【以下的回答经过翻译处理】 我会向你展示两个备选方案(如下)。在深入了解它们之前,有几个要点需要注意。
首先,从你的schema来看,每个项目大约有5个属性,所以我预计你的项目平均大小在40-50B之间?在这个假设下,我们知道1RCU可以读取4K的数据(或者如果你可以接受最终一致性,那么可以读取8K)。以1RCU每4K为基础,你可以使用1 RCU读取100个项目。如果平均每个查询都会返回100个项目,那么你可以采用当前的schema并且过滤你不需要的项目。
其次,不要通过在应用程序代码中实现该逻辑来重复项目,你可以利用GSIs。见下面的选项#2。
因此,请查看以下内容。你的业务用例和数据形状将决定哪个选项最适合你。
==Alternate option#1== Table-PK | Table-SK | GSI-PK | GSI-SK | Price abc | xyz | TYPE | USA#NY#NY#PRICE | $x
(1) Filter by product type GSI-PK = TYPE
(2) Filter by product type and location GSI-PK = TYPE, GSI-SK starts with USA GSI-PK = TYPE, GSI-SK starts with USA#NY GSI-PK = TYPE, GSI-SK starts with USA#NY#NY
(3) Filter by product type, location and price GSI-PK = TYPE, GSI-SK starts with USA, filter (price) GSI-PK = TYPE, GSI-SK starts with USA#NY, filter (price) GSI-PK = TYPE, GSI-SK > USA#NY#NY#PRICE
==Alternate option#2== Table-PK | Table-SK | GSI-PK | GSI1-SK | GSI2-SK | GSI3-SK abc | xyz | TYPE | USA#PRICE | USA#NY#PRICE | USA#NY#NY#PRICE
(1) Filter by product type GSI-PK = TYPE
(2) Filter by product type and location GSI-PK = TYPE, GSI3-SK starts with USA GSI-PK = TYPE, GSI3-SK starts with USA#NY GSI-PK = TYPE, GSI3-SK starts with USA#NY#NY
(3) Filter by product type, location and price GSI-PK = TYPE, GSI1-SK > USA#PRICE GSI-PK = TYPE, GSI2-SK > USA#NY#PRICE GSI-PK = TYPE, GSI3-SK > USA#NY#NY#PRICE
相关内容
- AWS 官方已更新 4 个月前
- AWS 官方已更新 2 年前
- AWS 官方已更新 1 年前