翻译或纠错本页面

索引策略

打造最适合您的应用的索引必须考虑如下因素:您即将使用的查询种类,读和写的比例,以及您的系统中的可用内存量。

当决定您的索引策略时,您应该先深入理解您的应用所使用的查询。在您建立索引前,先找出所有使用到的的查询种类,这样您可以建立索引来引用那些用到的键。通常索引伴随着一定的性能代价,但是相较于在大数据集上频发查询的代价而言,还是值得的。还要根据应用中每种查询的相对频率,考虑为这样的查询建立索引是否合理。

设计索引的一个通用策略就是在和您的产品中使用的数据集相似的数据集上,根据一系列不同的索引配置分别建立索引,考察哪一种配置性能最优。检查当前所创建的索引以确保您当前所使用和计划使用的查询。如果一个索引不再使用,应该删除它。

对于给定的某个操作,MongoDB只能使用 一个 索引来支持该操作。此外, $or 查询语句中的每个子句可能会使用不同的一个索引。

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

创建索引以支持查询

当索引包含了查询的所有键时,索引可以支持该查询。创建可以支持查询的索引会带来极大的查询性能提升。

使用索引来排序查询结果

为了支持高效的查询,当您需要指定被索引键的排列顺序和排序顺序时,请使用此处的策略。

确保索引与内存相适应

当您的索引可以整个存储于内存时,系统可以避免从磁盘读取索引,这时您的处理过程会变得更快。

创建能确保选择力的查询

选择力是查询使用索引来缩窄结果集范围的能力。选择力使得MongoDB可以使用索引来完成匹配查询过程中的更多工作。