我无法在Mongodb的explain查询输出中得到"nscanned"和"nscannedObjects"之间的确切区别.
关于MongoDB Explain文档,我可以阅读:
nscanned检查的项目数(文档或索引条目).项可能是对象或索引键.如果涉及"覆盖索引",则nscanned可能高于nscannedObjects.
nscannedObjects扫描的文档数.
这两个领域有什么不同?更具体的是,当我有一个使用BtreeCursor(一个索引)的查询时,究竟意味着什么,这两个字段有两个不同的值,例如:
{
"cursor" : "BtreeCursor a_1_b_1",
"isMultiKey" : false,
"n" : 5,
"nscannedObjects" : 5,
"nscanned" : 9,
(...)
}
Run Code Online (Sandbox Code Playgroud)
我知道什么是" 覆盖索引".我想准确理解查询在上面的例子中做了什么.它是否通过("扫描")9个元素(nscanned = 9),其中所有元素都是索引条目并读取("检查")它们中只有5个(nscannedObjects = 5)的值来生成结果集?
Aja*_*rge 25
这意味着:
查询返回了5个文档 - n
从索引中扫描了9个文档 - nscanned
然后从集合中读取了5个完整文档 -nscannedObjects
类似的例子见:http:
//docs.mongodb.org/manual/reference/method/cursor.explain/#cursor.explain
| 归档时间: |
|
| 查看次数: |
11519 次 |
| 最近记录: |