在 Cloud Datastore 中,Movie 实体具有多值属性 'actors' 和 'tags',以及单值属性 'date_released'。查询按 actor 或 tag 过滤,并按 date_released 排序。您如何避免索引的组合爆炸?
选择一个答案
点击一个选项来检查您的答案。
正确答案: 仅在索引配置中明确声明必要的复合索引(例如,actor + date_released 和 tag + date_released)。.
为什么这是答案
当多值属性与单值属性组合时,Datastore 默认会自动生成复合索引。如果不对这些索引进行管理,多值属性的每个可能组合都会生成一个索引条目,导致“索引组合爆炸”,这会显著增加存储成本和写入延迟。为了避免这种情况,最佳实践是仅明确声明查询所需的特定复合索引。例如,如果查询需要按 actor 和 datereleased 过滤和排序,以及按 tag 和 datereleased 过滤和排序,则应仅创建 actor + datereleased 和 tag + datereleased 这两个复合索引。手动声明所有多值属性组合的复合索引会加剧组合爆炸问题。将多值属性排除在索引之外(excludefromindexes = 'actors, tags')将阻止按这些属性进行过滤和排序,这与查询要求相悖。将 datepublished 排除在索引之外也无法满足查询需求。
通过考试 — 无需无休止地寻找答案
将本次考试的所有验证问题和解释集中在一处,节省数小时的准备时间。1,000+ 认证 · 20+ 语言 · 免费开始。
更快通过考试 → 无需银行卡