首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DynamoDB全局索引重载与稀疏索引

DynamoDB全局索引重载与稀疏索引
EN

Stack Overflow用户
提问于 2020-03-28 16:06:10
回答 1查看 305关注 0票数 4

我们正在设计一个使用DynamoDB作为存储系统的应用程序。

我们确定了不同的访问模式,在查看了全局辅助索引文档之后,我们不得不决定使用哪种方法:索引重载还是有2个稀疏索引。

为了提供更多的上下文,我们的应用程序存储订单,我们可以有内部或外部订单。在此基础上,它们将链接到客户或仓库:

由于我们希望通过客户和/或仓库进行搜索,我们考虑了2种解决方案。

第一个解决方案是保持上述数据结构,在以下方面创建2个索引:

  • GSI1 -客户(PK)
  • GSI2 -仓库(PK)

第二个解决方案是重载另一列,如:

因此,只需要一个索引:目的地(PK),并使用前缀进行查询。

问题是:“有两个不同的稀疏全局辅助索引在索引重载之间有什么好处吗?”(节省容量配置、数据传输、查询时间、数据复杂性等方面的成本)。

EN

回答 1

Stack Overflow用户

发布于 2020-04-26 10:56:35

由于我还没有得到任何答复,我将补充我的意见。

在这两种情况下,这两种方法并没有太大的区别,所有的项最终都会被索引并存储类似的属性。

我能找到的一些好处是:

使用2个GSI的好处

overloading)

  • More

  • 数据模式更容易理解(对于演化该模式没有灵活性:如果需求发生变化,则可以同时为客户和warehouse.
  1. Capacity分配订单以调整更好的预测(可能并不总是适用,但您可能只需要2个字段用于客户访问模式,而3个用于Warehouse)
  2. Smaller索引的则具有更高的性能

)。

使用1个GSI的好处

  1. 不需要担心容量单元,它们可以类似于主表。当使用2个索引时,您需要知道每个索引将有多少记录属于它们,否则您需要过多地提供它们。

示例:如果将主表中的50% RCU和WCU设置为每个索引,但是您有70%的订单是针对客户的,则一些请求将被节流。。

总之,即使使用2个索引也可以获得更精确的配置,但最终可能会带来更高的成本,并且需要检查索引配置,以随时调整索引配置以访问模式使用情况。

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

https://stackoverflow.com/questions/60903207

复制
相关文章

相似问题

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