MongoDB 索引和投影



我对MongoDB有几个问题:

(1( 索引有助于投影吗?

(2(我为集合分配了许多索引,并尝试使用sort运行查找,然后使用explain,它在排序字段上显示BtreeCursor索引。

可能是其他索引在查询部分有所帮助,而explain只是没有显示它,因为它只显示帮助查找的最后一个索引?

或者explain应该显示有助于查询、排序等的所有索引?

谢谢。

索引有助于投影吗?

我相信它真正有帮助的唯一时间(由性能等定义(是查询是否被"覆盖":http://docs.mongodb.org/manual/tutorial/create-indexes-to-support-queries/

因此,例如

,如果您想查询{d:1, e:2}并返回{_id, t, e},您将执行以下操作:

db.t.ensureIndex({d:1 , e:1, _id:1, t:1});
db.t.find({d:1, e:2}, {_id:1, t:1, e:1});

该查询的explain()输出将显示indexOnly为真实,这意味着它从未从磁盘加载文档以返回响应。

所以是的,在某些情况下,索引可以帮助进行投影。

我已经为一个集合分配了许多索引,并尝试运行带有排序的查找,然后使用 explain,它在排序字段上显示 BtreeCursor 索引。

是的,确实如此。

可能是其他索引在查询部分有所帮助,并且解释只是没有显示它,因为它只显示帮助查找的最后一个索引?

如果您是索引交集的受害者,则可以使用explain(true)来显示使用的所有索引计划。

需要注意的是,单独的索引不用于查找和排序与交集,所以这里的答案实际上是否定的:http://docs.mongodb.org/manual/core/index-intersection/#index-intersection-and-sort

相关内容

  • 没有找到相关文章

最新更新