ExamScores DynamoDB 表使用 student_id 作为分区键,subject_name 作为排序键,top_score 作为属性。应用程序需要快速返回每个科目的最高得分者的 student_id。哪项更改将加快这些查询?
选择一个答案
点击一个选项来检查您的答案。
正确答案: 创建一个全局二级索引 (GSI),以 subject_name 作为分区键,top_score 作为排序键。.
为什么这是答案
正确答案是创建一个全局二级索引 (GSI),以 subjectname 作为分区键,topscore 作为排序键。 应用程序需要根据 subjectname 查询,并按 topscore 排序以找到最高得分者。原始表的主键是 studentid 和 subjectname,无法直接高效地按 subjectname 查询并按 topscore 排序。 GSI 允许您定义与主表不同的分区键和排序键。将 subjectname 设置为 GSI 的分区键,可以实现按科目进行高效查询。将 topscore 设置为排序键,可以轻松地按分数降序排列,从而快速找到最高得分者。 本地二级索引 (LSI) 必须与主表共享相同的主分区键 (studentid),这不符合按 subjectname 查询的需求。 如果 GSI 的排序键是 studentid 而不是 topscore,则无法直接按分数排序来找到最高得分者。
通过考试 — 无需无休止地寻找答案
将本次考试的所有验证问题和解释集中在一处,节省数小时的准备时间。1,000+ 认证 · 20+ 语言 · 免费开始。
更快通过考试 → 无需银行卡