首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在AWS DynamoDB中本地索引的好处?

在AWS DynamoDB中本地索引的好处?
EN

Stack Overflow用户
提问于 2021-02-03 10:08:52
回答 1查看 163关注 0票数 0

在DynamoDB中,我有一个类似于下面示例数据的表

代码语言:javascript
复制
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。也很好用。我的问题是,如果我在这里使用本地索引,有什么好处吗?我什么时候不应该使用本地索引?如果这里不需要全局索引,但我已经使用了,是否存在性能问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-03 10:26:06

@niloy-rony

这个AWS 文档非常详细地解释了LSI和GSI。

现在回答你的问题

  • LSI没有额外的成本。您不需要支付GSI的RCU,但是WCU需要支付存储费用,就像在另一个AWS 文档中描述的那样。
  • 如果您非常确定主表的单个分区(即- pk) (在LSI中保持不变)可以超过10 be,则不应该使用LSI。这一点在上面的链接中也有讨论。
  • 在查询延迟方面,LSI和GSI没有性能问题。然而,GSI中的读取最终是一致的,而LSI支持强大的一致读取。

编辑、摘录自AWS 文档以理解强且最终一致的读取。

强一致地读取-当您请求一个强一致的读取时,DynamoDB返回一个响应,其中包含最新的数据,反映了以前所有成功的写入操作的更新。

最终会读取--当您从DynamoDB表读取数据时,响应可能不会反映最近完成的写入操作的结果。响应可能包括一些陈旧的数据。如果在短时间后重复读取请求,响应应该返回最新的数据。

有关将数据从主表传播到GSI的最小延迟的提示,请参阅 AWS

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66025323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档