DynamoDB query()与getItem()基于索引进行单项检索

时间:2012-09-03 02:08:09

标签: amazon-web-services amazon-dynamodb

如果我是根据索引的哈希键从我的表中检索单个项目,那么query()或getItem()之间是否存在性能差异?

4 个答案:

答案 0 :(得分:26)

getItem会更快 通过散列和范围键检索getItem是1:1拟合,检索它的时间(因此性能)受内部散列和分片的限制。
查询结果是搜索“所有”范围键。它增加了计算工作,因此被认为较慢。

答案 1 :(得分:16)

在亚马逊的DynamoDB中,无论访问方法如何,您的表现都是保证。 (你买单)。

根据Chen Harel的建议,DynamoDB服务器本身可能存在几毫秒差异,但由于HTTP请求RTT,这些差异可忽略不计

这就是说,当您有足够的信息时,发出GET代替QUERY良好做法

答案 2 :(得分:5)

如aws员工在讨论中的一项建议中,我引用:

GetItem与Query的延迟(限制为= 1)将是等效的。

AWS discussion link

答案 3 :(得分:0)

两者之间没有性能差异。两个查询中的哈希计算均按1进行。 后者(即get item)只是作为JPA存储库/ spring findOne / findById的类比提供,以简化Spring Bean布线/ Hibernate配置中的布线。