我们正在设计一个使用DynamoDB作为存储系统的应用程序。
我们确定了不同的访问模式,在查看了全局辅助索引文档之后,我们不得不决定使用哪种方法:索引重载还是有2个稀疏索引。
为了提供更多的上下文,我们的应用程序存储订单,我们可以有内部或外部订单。在此基础上,它们将链接到客户或仓库:

由于我们希望通过客户和/或仓库进行搜索,我们考虑了2种解决方案。
第一个解决方案是保持上述数据结构,在以下方面创建2个索引:
第二个解决方案是重载另一列,如:

因此,只需要一个索引:目的地(PK),并使用前缀进行查询。
问题是:“有两个不同的稀疏全局辅助索引在索引重载之间有什么好处吗?”(节省容量配置、数据传输、查询时间、数据复杂性等方面的成本)。
发布于 2020-04-26 10:56:35
由于我还没有得到任何答复,我将补充我的意见。
在这两种情况下,这两种方法并没有太大的区别,所有的项最终都会被索引并存储类似的属性。
我能找到的一些好处是:
使用2个GSI的好处
overloading)
)。
使用1个GSI的好处
示例:如果将主表中的50% RCU和WCU设置为每个索引,但是您有70%的订单是针对客户的,则一些请求将被节流。。
总之,即使使用2个索引也可以获得更精确的配置,但最终可能会带来更高的成本,并且需要检查索引配置,以随时调整索引配置以访问模式使用情况。
https://stackoverflow.com/questions/60903207
复制相似问题