最适合您的应用程序的索引取决于多个因素,包括您期望的查询类型、读取与写入的比率以及系统上的可用内存量。
在构建索引之前,请规划出应用程序的查询及其访问权限的字段。索引会产生性能费用,但对于大型数据集的频繁查询是值得的。考虑每个查询的频率以及是否需要索引。
根据具有生产代表性的数据分析多个索引配置,找出性能最佳的索引配置。检查现有索引,确认它们支持当前和计划的查询。删除不再使用的索引。
一般来说,MongoDB 仅使用一个索引即可完成大多数查询。但是,$or 查询的每个子句可能使用不同的索引。
以下文档介绍了索引策略:
- 使用 ESR(相等、排序、范围)准则
- 排列复合索引键以优化相等、排序和范围操作。
- 创建索引以支持查询
- 索引包含查询扫描的所有字段时可为查询提供支持,从而大幅提高性能。
- 使用索引对查询结果进行排序
- 使用这些策略指定索引字段顺序并支持高效的排序查询。
- 创建选择性索引以高效地回答查询
- 了解索引选择性如何影响查询性能,并设计可高效回答查询的索引。
- 唯一索引和模式验证
- 结合索引属性和模式验证来实现应用程序设计。