Q96 — AWS DVA-C02 第3章
第 96/100 問 | ← 第3章
開発者は、Amazon DynamoDB にデータを格納する Web アプリケーションを構築しています。ExamScores テーブルには、student_id、subject_name、top_score の3つの属性があります。ExamScores テーブルの各項目は、パーティションキーとして student_id、並べ替えキーとして subject_name を使用して識別されます。Web アプリケーションは、各科目の最高得点の student_id を表示する必要があります。開発者は、各科目の最高得点の学生 ID を取得するためのクエリ速度を向上させたいと考えています。どのソリューションがこれらの要件を満たしますか?
- A. ローカルセカンダリインデックス (LSI) を作成し、パーティションキーとして subject_name、並べ替えキーとして top_score を指定します。
- B. ローカルセカンダリインデックス (LSI) を作成し、パーティションキーとして top_score、並べ替えキーとして student_id を指定します。
- C. グローバルセカンダリインデックス (GSI) を作成し、パーティションキーとして subject_name、並べ替えキーとして top_score を指定します。 ✓
- D. グローバルセカンダリインデックス (GSI) を作成し、パーティションキーとして subject_name、並べ替えキーとして student_id を指定します。
正解: C. グローバルセカンダリインデックス (GSI) を作成し、パーティションキーとして subject_name、並べ替えキーとして top_score を指定します。
解説
正解は C です。グローバルセカンダリインデックス (GSI) では、メインテーブルとは異なるパーティションキーおよび並べ替えキーを指定でき、クエリパフォーマンスを最適化できます。このシナリオでは、subject_name をパーティションキー、top_score を並べ替えキーとする GSI を作成することで、各科目の最高得点のレコードを迅速にクエリできます。GSI を使用すれば、各科目のトップスコアの学生 ID を効率的に取得でき、クエリ速度が大幅に向上します。