amazon-dynamodb - Dynamodb GetBatchItem 与查询
问题描述
目前我使用 table.query 通过匹配分区键来获取项目并按排序键排序。现在新的要求是处理批量查询 - 几百个分区键匹配并且希望仍然按每个分区键结果中的排序键排序。我发现 GetBatchItem 每个查询最多可以处理 100 个项目,但看起来没有排序。这里的一项是 DDB 中的一行还是一个分区键中的所有行?从性能(查询速度)和价格的角度来看,我应该使用哪一个?如果我使用 GetBatchItem,我是否必须自己对结果进行排序?理想情况下,我喜欢通过每个分区键中的排序键对结果进行排序的快速、具有成本效益和结果的解决方案,但前两个是重中之重,如果必须,我可以进行排序。谢谢
解决方案
Query()
更便宜...
BatchGetItem()
单独运行,GetItem()
每个成本 1 RCU(假设您的项目小于 400K)。
假设您的项目是 10K,Query()
可以用 1 个 RCU 退回其中的 40 个,而通过退回 40 个BatchGetItem()
将花费 40 个 RCU。
推荐阅读
- c# - 了解每个 MVVM 组件
- java - 无法从任何存储库 org.apache.maven.plugins:maven-resources-plugin:pom:2.3 中找到工件
- python - TKinter - 无法更新文本小部件
- python - 安装neural_render_pytorch 失败
- .net - 无法跟踪实体类型的实例,因为跟踪了具有相同键值的另一个实例
- python - 使用 chaquopy 的 android studio 不支持 Python 模块
- c++ - 如何使 std::vector 在 Boost.Hana 中成为 Applicative 而不先使其成为 Monad?
- ios - Vuejs网站:用于自动滚动垂直的scrollTop在iOS Safari中不起作用
- python - 修改 asdict 结果是否应该修改原始对象?
- javascript - 函数中最终使用 Promise 时 JS 未捕获错误