explain¶的explain命令提供以下命令的执行信息:aggregate,
count,distinct,find,
findAndModify,delete,和
update。
尽管MongoDB提供了该explain命令,但是运行的首选方法explain是使用
db.collection.explain()和cursor.explain()帮助器。
该explain命令具有以下语法:
该命令包含以下字段:
| 领域 | 类型 | 描述 |
|---|---|---|
explain |
文献 | 一个文档,指定要为其返回执行信息的命令。有关特定命令文件的详细信息,请参见aggregate,count,
distinct,find,
findAndModify,delete,和update。 |
verbosity |
串 | 可选的。一个字符串,指定运行方式 可能的模式是:
有关这些模式的更多信息,请参见行为说明。 |
的行为explain和返回的信息量取决于verbosity模式。
MongoDB运行查询优化器以选择获胜计划,执行获胜计划直至完成,并返回描述获胜计划执行情况的统计信息。
对于写操作,explain返回有关更新或删除操作的信息会被执行,但并
没有修改应用到数据库。
explain返回queryPlanner和的
executionStats信息,用于评估
<command>。但是,executionStats不提供被拒绝计划的查询执行信息。
默认情况下,explain以"allPlansExecution"详细模式运行
。
MongoDB运行查询优化器以选择中奖计划并执行中奖计划以完成。在"allPlansExecution"模式下,MongoDB返回描述获胜计划执行情况的统计信息以及在计划选择期间捕获的其他候选计划的统计信息。
对于写操作,explain返回有关更新或删除操作的信息会被执行,但并
没有修改应用到数据库。
explain返回queryPlanner和的
executionStats信息,用于评估
<command>。其中executionStats包括中奖计划的
完整查询执行信息。
如果查询优化器考虑了多个计划,则
executionStats信息还包括
在计划选择阶段为获胜和被拒绝的候选计划捕获的部分执行信息。
在MongoDB中4.2开始,你不能运行explain
命令/ db.collection.explain()在executionStats模式或allPlansExecution一个模式包含阶段。相反,您可以:aggregation pipeline$out
allPlansExecution模式¶默认情况下,explain以"allPlansExecution"详细模式运行。以下explain命令返回命令的
queryPlanner和executionStats对于所有考虑的计划update:
注意
执行explain 不会修改数据,而是运行更新操作的查询谓词。对于候选计划,MongoDB返回在计划选择阶段捕获的执行信息 。
explain 操作可以返回有关以下内容的信息:
冗长模式(即queryPlanner,executionStats,
allPlansExecution)确定结果是否包括
executionStats和是否executionStats包括期间捕获的数据计划选择。
有关输出的详细信息,请参见解释结果。