

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 具有大型陣列的多重索引
<a name="anti-pattern-multi-key-indexes"></a>

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

Amazon DocumentDB 中的多金鑰索引可讓您有效率地查詢陣列欄位。此索引策略可在搜尋陣列資料時大幅降低查詢延遲，使其成為具有複雜資料結構之應用程式具吸引力的選項。

不過，在集合中使用大型陣列或多個陣列欄位時，請務必了解資源影響和效能特性，以做出明智的架構決策。當您在陣列欄位上建立索引時，Amazon DocumentDB 會為陣列中的每個元素產生個別索引項目。

## 對叢集的影響
<a name="multi-key-impact"></a>
+ **儲存和 IO 額外負荷**：多金鑰索引有時可能會耗用最多多次的基礎資料表儲存空間，大小與具有索引陣列屬性的集合中的文件、陣列中的元素數量和元素的大小直接成正比。
+ **記憶體用量**：由於儲存體使用量相對較大，這些索引在記憶體中有對應的使用量，因此產生較大的工作集。
+ **寫入操作**：多金鑰索引會在寫入操作期間建立額外負荷。每個陣列元素都會產生個別的索引項目，將完成寫入操作所需的工作相乘。

## 修復策略
<a name="multi-key-remediation"></a>
+ 如果需要，請建立多金鑰索引，並限制陣列中的欄位數量。
+ 限制集合上的多金鑰索引數量
+ 考慮修改[您的資料模型](https://skillbuilder.aws/learn/B4KABYUY33/data-modeling-for-amazon-documentdb/2E2C6J83TQ)