men*_*h84 3 mongodb mongodb-indexes
我有几个关于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});
Run Code Online (Sandbox Code Playgroud)
并且该查询的explain()输出将显示indexOnly为true,表示它从未从磁盘加载文档以返回响应.
所以,在某些情况下,索引可以帮助进行预测.
我已经为一个集合分配了许多索引,并尝试使用sort运行查找,然后使用explain,它在排序字段上显示BtreeCursor索引.
是的,它确实.
可能是其他索引在查询部分中有所帮助而且解释只是没有显示它,因为它只显示了帮助查找的最后一个索引?
如果您是索引交叉的受害者,那么您将使用an explain(true)来显示所使用的所有索引计划.
值得注意的是,单独的索引不用于查找和排序交叉,所以这里的答案实际上是否:http://docs.mongodb.org/manual/core/index-intersection/#index-intersection-and -分类
| 归档时间: |
|
| 查看次数: |
1775 次 |
| 最近记录: |