Mongodb中的explain():与;nscanned”一词;及;nscannedObjects“;
在Mongodb的解释查询输出中,我无法获得“nscanned”和“nscannedObjects”之间的确切区别 我可以阅读: n扫描检查的项目数(文档或索引项)。项目 可能是对象或索引键。如果涉及“覆盖指数”, nscanned可能高于nscannedobject 扫描对象扫描的文档数 这两个领域有什么不同? 更具体地说,当我有一个使用BtreeCursor(索引)的查询时,这两个字段有两个不同的值,例如:Mongodb中的explain():与;nscanned”一词;及;nscannedObjects“;,mongodb,Mongodb,在Mongodb的解释查询输出中,我无法获得“nscanned”和“nscannedObjects”之间的确切区别 我可以阅读: n扫描检查的项目数(文档或索引项)。项目 可能是对象或索引键。如果涉及“覆盖指数”, nscanned可能高于nscannedobject 扫描对象扫描的文档数 这两个领域有什么不同? 更具体地说,当我有一个使用BtreeCursor(索引)的查询时,这两个字段有两个不同的值,例如: { "cursor" : "BtreeCursor a_1_b_1",
{
"cursor" : "BtreeCursor a_1_b_1",
"isMultiKey" : false,
"n" : 5,
"nscannedObjects" : 5,
"nscanned" : 9,
(...)
}
我知道“a”是什么。
我想确切地理解上面示例中的查询做了什么。
它是否通过(“扫描”)9个元素(nscanned=9),其中所有元素都是索引项,并仅读取(“检查”)其中5个元素(nscannedObjects=5)的值以生成结果集?这意味着:查询返回了5个文档-
n
从索引扫描了9个文档-
n扫描
然后阅读收藏中的5个完整文档-
nscannedObjects
类似示例见:如果“游标”是索引==>n扫描=扫描的索引数 否则,如果“游标”为FullTableScan=>nscanned=扫描的文档数 nscannedObjects==>扫描的文档数 查询时,尽量减少所有计数,即nscanned和nscannedObjects都是最小值,这意味着您的查询应该运行得更快