Indexing Strategies

适用于您的应用程序的最佳索引必须考虑许多因素,包括您期望的查询类型,读取与写入的比率以及系统上的可用内存量。

在制定索引策略时,您应该对应用程序的查询有深刻的了解。在构建索引之前,请先 Map 将要运行的查询的类型,以便可以构建引用这些字段的索引。索引会带来性能成本,但对于大型数据集的频繁查询而言,索引的价值不菲。考虑应用程序中每个查询的相对频率以及查询是否使索引合理。

设计索引的最佳总体策略是使用与您将在生产环境中运行的数据集相似的数据集来分析各种索引配置,以查看哪种配置性能最佳。检查为您的集合创建的当前索引,以确保它们支持您当前和计划中的查询。如果不再使用索引,请删除该索引。

通常,MongoDB 仅使用* one *索引来满足大多数查询。但是,$or查询的每个子句都可以使用不同的索引,从 2.6 开始,MongoDB 可以使用多个索引的intersection

以下文档介绍了索引策略:

  • 创建索引以支持您的查询

    • 当索引包含该查询扫描的所有字段时,该索引就支持该查询。创建支持查询的索引可以大大提高查询性能。
  • 使用索引对查询结果进行排序

    • 为了支持有效的查询,在指定索引字段的 Sequences 和排序 Sequences 时,请使用此处的策略。
  • 确保索引适合 RAM

    • 当索引适合 RAM 时,系统可以避免从磁盘读取索引,从而获得最快的处理速度。
  • 创建可确保选择性的查询

    • 选择性是查询使用索引缩小结果范围的能力。选择性允许 MongoDB 将索引用于与实现查询相关的大部分工作。