web-dev-qa-db-ja.com

mongodbの説明を理解する

クエリを実行し、mongoコンソールで説明しようとすると、

"isMultiKey" : true,
"n" : 8,
"nscannedObjects" : 17272,
"nscanned" : 17272,
"nscannedObjectsAllPlans" : 21836,
"nscannedAllPlans" : 21836,
"scanAndOrder" : true,
"indexOnly" : false,
"nYields" : 0,
"nChunkSkips" : 0,
"millis" : 184,

ほとんどのことは http://www.mongodb.org/display/DOCS/Explain で説明されていますが、nscannedObjectsAllPlans、nscannedAllPlansの意味がわかりません。誰か助けてもらえますか?

ありがとう

27
Global Warrior

nscannednscannedObjectsは、優勝プランの結果を報告します。

nscannedAllPlansおよびnscannedObjectsAllPlansはすべての計画の結果を報告します

例えば:

>t = db.jstests_explainb;
>t.drop();

>t.ensureIndex( { a:1, b:1 } );
>t.ensureIndex( { b:1, a:1 } );

>t.save( { a:0, b:1 } );
>t.save( { a:1, b:0 } );

>t.find( { a:{ $gte:0 }, b:{ $gte:0 } } ).explain( true );
{
  "cursor": "BtreeCursor a_1_b_1",
  "isMultiKey": false,
  "n": 2,
  "nscannedObjects": 2,
  "nscanned": 2,
  "nscannedObjectsAllPlans": 6,
  "nscannedAllPlans": 6,
  "scanAndOrder": false,
  "indexOnly": false,
  "nYields": 0,
  "nChunkSkips": 0,
  "millis": 2,
...
}
23
Gianfranco P.