索引创建 - Amazon DocumentDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

索引创建

以下主题说明了索引或后台索引构建失败时的操作。

索引构建失败

Amazon DocumentDB 在索引创建过程中,将使用实例上的本地存储。您可以使用FreeLocalStorageCloudWatch 指标 (CloudWatch -> Metrics -> DocDB -> Instance Metrics)。如果索引构建用尽所有本地磁盘并且失败,您将收到错误。将数据迁移到 Amazon DocumentDB 时,我们建议您先创建索引,然后再插入数据。有关迁移策略和创建索引的详细信息,请参阅迁移到 Amazon DocumentDB在 Amazon DocumentDB 文档和博客中:使用脱机方法从 MongoDB 迁移到 Amazon DocumentDB

在现有集群上创建索引时,如果索引构建花费的时间超过预期或失败,我们建议您扩展实例来创建索引,创建好索引后,再缩减回来。Amazon DocumentDB 使您能够在几分钟内快速扩展实例大小,使用Amazon Web Services Management Console或Amazon CLI。有关更多信息,请参阅 管理实例类。使用每秒实例定价时,您只需为使用 1 秒以上的资源付费。

后台索引构建延迟问题和失败

在启动索引构建之前启动的主实例上的所有查询都完成执行之后,Amazon DocumentDB 中的后台索引构建不会启动。如果存在长时间运行的查询,则后台索引构建将阻塞,直到查询完成,因此可能需要比预期更长的时间才能完成。即使集合为空。

前景索引构建不会显示相同的阻塞行为。相反,前台索引构建在集合上占用独占锁,直到索引构建完成。因此,为了在空集合上创建索引并避免阻塞任何长时间运行的查询,我们建议使用前台索引构建。

注意

Amazon DocumentDB 允许在任何给定时间在一个集合中构建一个后台索引。如果后台索引构建期间在相同集合上出现 DDL(数据定义语言)操作(如 createIndex()dropIndex()),后台索引构建将失败。