我有一个 dynamodb 表和该表所有主键的列表。
示例项目可能是“foo_12424”的 PK 和“bar_32456”的 SK
我想获取所有带有 sk 以前缀“bar_3”开头的项目
我可以考虑通过两种方式做到这一点:
根据我的理解,扫描效率非常低,我的想法是查询排序键会更有效,因为它不会遍历所有项目,但我想知道循环所有主键的开销是否会抵消这一优势?
这里本质上你需要的是基于 SK 的全局排序顺序。为此,拥有一个具有公共属性作为 PK 的索引通常很有用,然后您的请求就会变得高效且快速。
您可以从博客文章这里了解更多信息。
GSI_PK | SK | PK |
---|---|---|
1 | bar_32456 | foo_12424 |
1 | bar_33453 | foo_12111 |
1 | bar_34344 | foo_12222 |