在DynamoDB中,我有一个类似于下面示例数据的表
pk sk name price
=======================================================
product cat#phone#name#iPhone11 iPhone 11 500
product cat#phone#name#Nokia1100 Nokia 1100 100
product cat#phone#name#iPhone11 iPhone 11 500在这种情况下,我必须按名字搜索。因此,首先,我为名称在index pk = pk, sk=name中的位置创建了一个全局索引。然后我做了一个很好的搜索。
现在,我改变了我的决定,创建了一个local index for name,其中name is sk。也很好用。我的问题是,如果我在这里使用本地索引,有什么好处吗?我什么时候不应该使用本地索引?如果这里不需要全局索引,但我已经使用了,是否存在性能问题?
发布于 2021-02-03 10:26:06
@niloy-rony
这个AWS 文档非常详细地解释了LSI和GSI。
现在回答你的问题
编辑、摘录自AWS 文档以理解强且最终一致的读取。
强一致地读取-当您请求一个强一致的读取时,DynamoDB返回一个响应,其中包含最新的数据,反映了以前所有成功的写入操作的更新。
最终会读取--当您从DynamoDB表读取数据时,响应可能不会反映最近完成的写入操作的结果。响应可能包括一些陈旧的数据。如果在短时间后重复读取请求,响应应该返回最新的数据。
有关将数据从主表传播到GSI的最小延迟的提示,请参阅这 AWS
https://stackoverflow.com/questions/66025323
复制相似问题