如果我是根据索引的哈希键从我的表中检索单个项目,那么query()或getItem()之间是否存在性能差异?
答案 0 :(得分:26)
getItem会更快
通过散列和范围键检索getItem是1:1拟合,检索它的时间(因此性能)受内部散列和分片的限制。
查询结果是搜索“所有”范围键。它增加了计算工作,因此被认为较慢。
答案 1 :(得分:16)
在亚马逊的DynamoDB中,无论访问方法如何,您的表现都是保证。 (你买单)。
根据Chen Harel的建议,DynamoDB服务器本身可能存在几毫秒差异,但由于HTTP请求RTT,这些差异可忽略不计。
这就是说,当您有足够的信息时,发出GET
代替QUERY
是良好做法。
答案 2 :(得分:5)
答案 3 :(得分:0)
两者之间没有性能差异。两个查询中的哈希计算均按1进行。 后者(即get item)只是作为JPA存储库/ spring findOne / findById的类比提供,以简化Spring Bean布线/ Hibernate配置中的布线。