首页 > 解决方案 > Dynamodb GetBatchItem 与查询

问题描述

目前我使用 table.query 通过匹配分区键来获取项目并按排序键排序。现在新的要求是处理批量查询 - 几百个分区键匹配并且希望仍然按每个分区键结果中的排序键排序。我发现 GetBatchItem 每个查询最多可以处理 100 个项目,但看起来没有排序。这里的一项是 DDB 中的一行还是一个分区键中的所有行?从性能(查询速度)和价格的角度来看,我应该使用哪一个?如果我使用 GetBatchItem,我是否必须自己对结果进行排序?理想情况下,我喜欢通过每个分区键中的排序键对结果进行排序的快速、具有成本效益和结果的解决方案,但前两个是重中之重,如果必须,我可以进行排序。谢谢

标签: amazon-dynamodbdynamodb-queries

解决方案


Query()更便宜...

BatchGetItem()单独运行,GetItem()每个成本 1 RCU(假设您的项目小于 400K)。

假设您的项目是 10K,Query()可以用 1 个 RCU 退回其中的 40 个,而通过退回 40 个BatchGetItem()将花费 40 个 RCU。


推荐阅读