GSI 重载是否提供任何性能优势,例如通过允许更有效地路由缓存的分区键?还是主要是为了防止您用完 GSI?或者可能会打开其他可能不那么明显的查询模式。
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-gsi-overloading.html
例如,我有一个基表,并且您想对其进行分区,以便您可以在二维上查询特定属性(成为 GSI 的 PK),如果您创建 1 个重载 GSI 或 2 个非重载 GSI,它有什么区别吗? GSI。
有关我所指的示例,请参见附图:
https://drive.google.com/file/d/1fsI50oUOFIx-CFp7zcYMij7KQc5hJGIa/view?usp=sharing
基表具有可以处于已发布或草稿状态的文档。每个文档由单个用户拥有。我希望能够由用户查询以找到:
- 按日期发布的文件
- 按日期起草文件
我问的是最新的 DynamoDB 最佳实践,这意味着所有应用程序只需要one
表。本文档中展示的一些技术展示了如何将相当复杂的关系模型压缩为 1 个 DynamoDB 表和 2 个 GSI,但仍支持 10-15 个查询模式。
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-relational-modeling.html
我试图理解为什么有人会走这条路,因为它看起来非常复杂。