web-dev-qa-db-ja.com

インデックスに基づく単一アイテムの取得に対するDynamoDB query()とgetItem()の比較

インデックス付きハッシュキーに基づいてテーブルから単一のアイテムを取得する場合、query()とgetItem()の間にパフォーマンスの違いはありますか?

45
ensnare

getItemはより速くなります
[。
クエリを実行すると、「すべて」の範囲キーが検索されます。これは計算作業を追加するため、低速と見なされます。

33
Chen Harel

AmazonのDynamoDBでは、アクセス方法に関係なく、パフォーマンスは保証です。 (あなたはそれを支払う)。

Chen Harelが示唆するように、DynamoDBサーバー自体にカップルミリ秒の違いがある可能性がありますが、HTTPリクエストのRTTのため、これらはnegligibleです。

これは、十分な情報があるときにGETの代わりにQUERYを発行することはグッドプラクティスと述べています。

19
yadutaf

ある議論でawsの従業員が示唆したように、私は引用します:

GetItemとクエリのlimit = 1でのレイテンシは同等になります。

AWSディスカッションリンク

1
Deep Patel

2つの間にパフォーマンスの違いはありません。両方のクエリのハッシュ計算は1つずつ行われます。後者、つまり取得アイテムは、Spring Beanの配線/ Hibernate構成での配線を容易にするために、JPAリポジトリ/ spring findOne/findByIdに類似して提供されます。

0
purpleguy