MongoDB - 解释.executionStats

Posted

技术标签:

【中文标题】MongoDB - 解释.executionStats【英文标题】:MongoDB - explain.executionStats 【发布时间】:2019-06-29 12:07:23 【问题描述】:

MongoDB 的 explain("executionStats") 的输出中是否有任何元素提供了一个想法或提示 - 查询是否使用给定的索引进行过滤或排序或两者兼而有之?

我阅读了以下网址

Mongodb compound indexes for filtering and sorting on BIG collection [指向以下网址并进行简短讨论]

https://emptysqua.re/blog/optimizing-mongodb-compound-indexes/ [这个给出了总体思路,但是解释输出使用了我正在使用的 Mongodb 4.0 中不存在的旧格式/元素]

https://docs.mongodb.com/manual/tutorial/sort-results-with-indexes/ [记录如何确定索引和利用索引前缀,但确实显示了确认使用的解释输出]

【问题讨论】:

【参考方案1】:

来自 MongoDB Docs:

如果 MongoDB 可以使用索引扫描来获取请求的排序顺序, 结果将不包括 SORT 阶段。否则,如果 MongoDB 不能 使用索引进行排序,解释结果将包含一个 SORT 阶段。

示例:

查看 sortop 集合中的示例数据。

解释不带索引的查询计划:

在集合上创建索引:

运行相同的查询并检查解释计划中的 SORT 阶段:

【讨论】:

以上是关于MongoDB - 解释.executionStats的主要内容,如果未能解决你的问题,请参考以下文章

解释 MongoDB 日志输出

Mongodb 之 概念解释

Spring中映射Mongodb中注解的解释

如何使用 db.command 获取 Python Mongodb Aggregate 解释?

mongodb 配置文件解释(转)

C# MongoDB IAsyncCursor 解释