- 新しい順
- 投票が多い順
- コメントが多い順
ドキュメントにも記載されていますが、特定の項目にのみアクセスするのであればget_itemが一番効率的な方法になります。
https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/SQLtoNoSQL.ReadData.html
これは、項目の物理的な場所に直接アクセスできるため、単一の項目を読み込むうえで最も効率的な方法です。
少し古いですが、以下のstackoverflowの回答が参考になると思います。
https://stackoverflow.com/questions/12241235/dynamodb-query-versus-getitem-for-single-item-retrieval-based-on-the-index
ちなみにGSIに対してget_itemは使用できないので注意してください。
https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/GSI.html#GSI.Reading
グ ローバルセカンダリインデックスから項目を取得するには、Query および Scan オペレーションを使用します。GetItem および BatchGetItem オペレーションは、グ ローバルセカンダリインデックスでは使用できません。
使用用途によると思います。
get_itemは単一の項目を取得しますが、Queryは複数個取得します。
複数個の項目を取得するのであればget_itemを何回も実行するよりもQueryを1回実行した方が速いと思います。
https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/SQLtoNoSQL.ReadData.html
ご回答いただきありがとうございます!
質問がよくなかったのですが、 パーティションキーのみの単一のPKとしてテーブルを定義し、 このユニークなキーをGSIに設定し、queryで取得するということを考えております。 なので、queryですが取得できる項目は1つを期待しています。
この場合ではいかがでしょうか?