我試着去檢查查詢和林不知道什麼是「nscannedObjectsAllPlans」和「nscannedAllPlans」正在做,因爲我看到,如果我直接運行一個查詢關閉索引字段「purchaseState」什麼MongoDB中的nscannedObjectsAllPlans解釋平均
我得到掃描 「nscannedObjects」 項目相同的結果, 「nscanned」, 「nscannedObjectsAllPlans」 和 「nscannedAllPlans」
然而,一旦我加了價大於400進入查詢 nscannedObjectsAllPlans現在比nscannedObjects 我想知道如果nscannedObjectsAllPlans是掃描對象的總數大於與purchase_state_Id一起運行與purchase_state指標計劃指數? 或者它只是陳述兩個指數計劃結果中的大?
我添加索引來pruchase狀態 然後我加入對購買狀態和Id
db.toys.ensureIndex({ 「purchaseState」:1})的索引
db.toys.ensureIndex( {「purchaseState」:1,「_id」:1})
**db.toys.find({"purchaseState" : "NY"}).pretty().explain()**
"cursor" : "BtreeCursor purchaseState_1",
"isMultiKey" : false,
"n" : 1596,
"nscannedObjects" : 1596,
"nscanned" : 1596,
"nscannedObjectsAllPlans" : 1596,
"nscannedAllPlans" : 1596,
"scanAndOrder" : false,
"indexOnly" : false,
"nYields" : 0,
"nChunkSkips" : 0,
"millis" : 3,
"indexBounds" : {
"purchaseState" : [
[
"NY",
"NY"
]
]
},
"server" : "XXXXXXX:27017"
**db.toys.find({"purchaseState" : "NY", "price": { $gt : 400 }}).pretty().explain()**
"cursor" : "BtreeCursor purchaseState_1",
"isMultiKey" : false,
"n" : 1423,
"nscannedObjects" : 1596,
"nscanned" : 1596,
"nscannedObjectsAllPlans" : 1808,
"nscannedAllPlans" : 1808,
"scanAndOrder" : false,
"indexOnly" : false,
"nYields" : 0,
"nChunkSkips" : 0,
"millis" : 10,
"indexBounds" : {
"purchaseState" : [
[
"NY",
"NY"
]
]
},
"server" : "XXXXXXX:27017"
謝謝,我正在尋找這方面的文檔,但猜測真的沒有太多。 – crackhaus
@crackhaus不客氣。很高興,你覺得它很有幫助。該產品和文檔處於早期階段,希望隨着時間的推移它會有所改進。 – muruga