

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Multi-Key 包含大型数组的索引
<a name="anti-pattern-multi-key-indexes"></a>

## 概述
<a name="multi-key-overview"></a>

Multi-key 借助 Amazon DocumentDB 中的索引，您可以高效地查询数组字段。在数组数据中搜索时，这种索引策略可以显著降低查询延迟，使其成为具有复杂数据结构的应用程序的有吸引力的选择。

但是，在处理大型数组或集合中的多个数组字段时，重要的是要了解资源影响和性能特征，以便做出明智的架构决策。当您在数组字段上创建索引时，Amazon DocumentDB 会为数组中的每个元素生成单独的索引条目。

## 对集群的影响
<a name="multi-key-impact"></a>
+ **存储和 IO 开销**： Multi-key 索引有时会占用基表的多倍存储空间，大小与集合中带有索引数组属性的文档、数组中的元素数量和元素的大小成正比。
+ **内存使用量**：由于存储空间占用量相对较大，因此这些索引在内存中具有相应的占用空间，从而产生更大的工作集。
+ **写入操作**： Multi-key 索引在写入操作期间会产生开销。每个数组元素生成单独的索引条目，乘以完成写入操作所需的工作量。

## 补救策略
<a name="multi-key-remediation"></a>
+ 必要时创建多键索引，并限制数组中的字段数。
+ 限制集合上多键索引的数量
+ 考虑修改您的[数据模型](https://skillbuilder.aws/learn/B4KABYUY33/data-modeling-for-amazon-documentdb/2E2C6J83TQ)