임 내가보기 때문 "nscannedObjectsAllPlans"와 "nscannedAllPlans는"무엇을하고 있는지 확실하지 쿼리 및 IM을 검사하려고 설명하지 무슨 나는 인덱스 필드 "purchaseState"하여 MongoDB에서 nscannedObjectsAllPlans이 평균
에서 직접 쿼리를 실행하는 경우나는, "이을 nscanned", "nscannedObjectsAllPlans"및 "nscannedAllPlans"
그러나 한 번을 "nscannedObjects"에 대한 항목을 스캔 같은 결과를 얻을 수 나는 nscannedObjectsAllPlans 내가 nscannedObjectsAllPlans 스캔 개체의 총 수 있는지 알고 싶어 nscannedObjects보다도 큰 쿼리로 (400)보다 큰 가격을 추가 그 purchase_state_Id와 함께 purchase_state 인덱스 계획을 실행 색인? 또는 두 개의 인덱스 계획 결과 중 더 큼을 언급하고 있습니까?
db.toys.ensureIndex (:
제가
I 구입 상태 이드db.toys.ensureIndex ({1 "purchaseState"})에 대한 인덱스를 추가 한 후 상태를 pruchase에 대한 인덱스를 추가 { "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