最适合应用程序的索引必须考虑许多因素,包括期望的查询类型、读取与写入的比率以及系统上的可用内存量。
制定索引策略时,您应该对应用程序的查询有深入了解。在构建索引之前,请规划要运行的查询类型,以便构建引用这些字段的索引。索引会带来性能成本,但对于大型数据集的频繁查询来说,这是值得的。请考虑应用程序中每个查询的相对频率以及查询是否需要索引。
设计索引的最佳总体策略是使用与您将在生产中运行的数据集类似的数据集来分析各种索引配置,了解哪些配置性能最佳。检查为集合创建的当前索引,确保它们支持当前和计划的查询。如果不再使用某个索引,请删除该索引。
一般来说, MongoDB仅使用一个索引来完成大多数查询。 但是, $or
查询的每个子句可以使用不同的索引,此外, MongoDB可以使用多个索引的交集。
以下文档介绍了索引策略:
- 使用 ESR(相等、排序、范围)准则
- ESR(相等、排序、范围)准则可指导您创建高效支持查询的索引。
- 创建索引以支持查询
- 当索引包含查询扫描的所有字段时,该索引支持该查询。创建支持查询的索引可大幅提高查询性能。
- 使用索引对查询结果进行排序
- 为了支持高效查询,请在指定索引字段的先后顺序和排序顺序时使用此处的策略。
- 创建选择性索引以高效地回答查询
- 了解索引选择性如何影响查询性能,并了解如何设计索引以最有效地回答给定的查询。
- 唯一索引和模式验证
- 从策略上结合索引属性和模式验证,以高效实现应用程序设计。