我们正在设计一个使用 DynamoDB 作为存储系统的应用程序。
我们确定了不同的访问模式,在查看了 Global Secondary Indexes 文档后,我们决定使用哪种方法:索引重载或具有 2 个稀疏索引。
为了提供更多上下文,我们的应用程序存储订单,我们可以有内部或外部订单。基于此,它们将链接到客户或仓库:
由于我们想按客户和/或仓库进行搜索,我们考虑了 2 个解决方案。
第一个解决方案是,保留上述数据结构,在以下位置创建 2 个索引:
- GSI1 - 客户 (PK)
- GSI2 - 仓库 (PK)
第二种解决方案是重载另一列,例如:
所以只需要 1 个索引:Destination (PK),并且查询应用带有前缀。
问题是:“索引重载与拥有 2 个不同的稀疏全局二级索引相比有什么好处吗?” (容量配置、数据传输、查询时间、数据复杂性等方面的成本节省......)