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

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

索引创建

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

索引构建失败

在索引创建过程中,Amazon DocumentDB 将使用实例上的本地存储。您可以使用 FreeLocalStorage CloudWatch 指标 (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()),后台索引构建将失败。