如何在Dynamodb中高度使用访问模式进行更新:使用排序键或利用GSI

问题描述 投票:0回答:1

我正在设计一个 DynamoDB 单表,我需要经常更新访问模式值。

我的访问模式需求很高 >

get details by status.
所以我可以使用
sort key = status 
或使用
gsi = status
来访问它。

由于这种访问模式在我的场景中使用率较高,因此我最初决定在基表本身中使用排序键=状态。

但是我需要经常更新这个状态(排序键)。我知道基表主键(PK+SK)无法修改。因此,对于这种方法,我需要删除项目并使用修改后的排序键作为新记录放置。

或者我可以在全球二级索引(GSI)中使用它并更新该项目。但随后的高访问模式将使用GSI。 (我认为它也会在幕后删除并添加为 gsi 表中的新记录。)

考虑到成本效益和最佳实践,在这种情况下哪种方法更可取?任何见解或建议将不胜感激。

谢谢你。

amazon-web-services database-design amazon-dynamodb dynamodb-queries amazon-dynamodb-index
1个回答
0
投票

成本没有区别,无论哪种方式,您都必须先支付删除费用,然后再支付费用。

使用 GSI,您可以将逻辑卸载到 DynamoDB,从而简化您与 DynamoDB 的交互方式。但您还必须支付额外的存储费用,这是唯一的成本差异因素。

使用基表,您的客户将需要确保您正确删除和放置项目,并确保您不会在任何一项上失败,这可能很困难。您可以使用事务以原子方式实现此目的,但现在与 GSI 方法相比,您的写入成本增加了一倍。

选择权在你。

© www.soinside.com 2019 - 2024. All rights reserved.