|
Here you go:
db.ProductData.getPlanCache().listQueryShapes()
|
[
|
{
|
"query": {
|
"groupKey": "518dde6bc519cc16e935b45a_51247477c519e3a71e639634",
|
"_id": {
|
"$gte": ObjectId("53224575e4b08cd8f178b154")
|
}
|
},
|
"sort": {
|
"_id": 1
|
},
|
"projection": {
|
|
}
|
},
|
{
|
"query": {
|
"groupKey": "518dde6bc519cc16e935b45a_51247477c519e3a71e639634"
|
},
|
"sort": {
|
"_id": 1
|
},
|
"projection": {
|
|
}
|
},
|
{
|
"query": {
|
"jobIds": ObjectId("54e65357e4b03847b679c7f2")
|
},
|
"sort": {
|
"_id": 1
|
},
|
"projection": {
|
|
}
|
},
|
{
|
"query": {
|
"groupKey": "4eaff5bcc5191a6af89d7ab7_4f7dbb95c519b28ce23ffc54",
|
"key": "410066"
|
},
|
"sort": {
|
|
},
|
"projection": {
|
|
}
|
},
|
{
|
"query": {
|
"groupKey": "4eaff5bcc5191a6af89d7ab7_4f7dbb95c519b28ce23ffc54",
|
"specId": ObjectId("54aeec43e4b0b6278ea04413"),
|
"_id": {
|
"$gte": ObjectId("54cfecfde4b02c33361d5002")
|
}
|
},
|
"sort": {
|
"_id": 1
|
},
|
"projection": {
|
|
}
|
},
|
{
|
"query": {
|
"groupKey": "4eaff5bcc5191a6af89d7ab7_4f7dbb95c519b28ce23ffc54",
|
"specId": ObjectId("54aeec43e4b0b6278ea04413"),
|
"_id": {
|
"$gte": ObjectId("54cfecfce4b02c33361d4fd0")
|
}
|
},
|
"sort": {
|
|
},
|
"projection": {
|
|
}
|
},
|
{
|
"query": {
|
"groupKey": "4eaff5bcc5191a6af89d7ab7_4f7dbb95c519b28ce23ffc54",
|
"specId": ObjectId("54aeec43e4b0b6278ea04413")
|
},
|
"sort": {
|
"_id": 1
|
},
|
"projection": {
|
|
}
|
}
|
]
|
db.ProductData.getPlanCache().getPlansByQuery({ groupKey: "4e20d04bec33075d8671fbec_51247477c519e3a71e639634", "_id": { $gte: ObjectId("53224505e4b055a5d8ac41fb") } }, {}, { "_id": 1 })
|
[
|
{
|
"details": {
|
"solution": "(index-tagged expression tree: tree=Node\n---Leaf \n---Leaf { _id: 1 }, pos: 0\n)"
|
},
|
"reason": {
|
"score": 1.7225222222222223,
|
"stats": {
|
"type": "FETCH",
|
"works": 31,
|
"yields": 17,
|
"unyields": 17,
|
"invalidates": 0,
|
"advanced": 26,
|
"needTime": 0,
|
"needFetch": 5,
|
"isEOF": 0,
|
"alreadyHasObj": 0,
|
"forcedFetches": 0,
|
"matchTested": 26,
|
"children": [
|
{
|
"type": "IXSCAN",
|
"works": 26,
|
"yields": 17,
|
"unyields": 17,
|
"invalidates": 0,
|
"advanced": 26,
|
"needTime": 0,
|
"needFetch": 0,
|
"isEOF": 0,
|
"keyPattern": "{ _id: 1 }",
|
"isMultiKey": 0,
|
"boundsVerbose": "field #0['_id']: [ObjectId('53224575e4b08cd8f178b154'), ObjectId('ffffffffffffffffffffffff')]",
|
"yieldMovedCursor": 0,
|
"dupsTested": 0,
|
"dupsDropped": 0,
|
"seenInvalidated": 0,
|
"matchTested": 0,
|
"keysExamined": 26,
|
"children": [ ]
|
}
|
]
|
}
|
},
|
"feedback": {
|
"nfeedback": 0,
|
"averageScore": 0,
|
"stdDevScore": 0,
|
"scores": [ ]
|
},
|
"filterSet": false
|
},
|
{
|
"details": {
|
"solution": "(index-tagged expression tree: tree=Node\n---Leaf { groupKey: 1, _id: 1 }, pos: 0\n---Leaf { groupKey: 1, _id: 1 }, pos: 1\n)"
|
},
|
"reason": {
|
"score": 1.6759756756756756,
|
"stats": {
|
"type": "FETCH",
|
"works": 31,
|
"yields": 17,
|
"unyields": 17,
|
"invalidates": 0,
|
"advanced": 25,
|
"needTime": 0,
|
"needFetch": 6,
|
"isEOF": 0,
|
"alreadyHasObj": 0,
|
"forcedFetches": 0,
|
"matchTested": 0,
|
"children": [
|
{
|
"type": "IXSCAN",
|
"works": 25,
|
"yields": 17,
|
"unyields": 17,
|
"invalidates": 0,
|
"advanced": 25,
|
"needTime": 0,
|
"needFetch": 0,
|
"isEOF": 0,
|
"keyPattern": "{ groupKey: 1, _id: 1 }",
|
"isMultiKey": 0,
|
"boundsVerbose": "field #0['groupKey']: [\"518dde6bc519cc16e935b45a_51247477c519e3a71e639634\", \"518dde6bc519cc16e935b45a_51247477c519e3a71e639634\"], field #1['_id']: [ObjectId('53224575e4b08cd8f178b154'), ObjectId('ffffffffffffffffffffffff')]",
|
"yieldMovedCursor": 0,
|
"dupsTested": 0,
|
"dupsDropped": 0,
|
"seenInvalidated": 0,
|
"matchTested": 0,
|
"keysExamined": 25,
|
"children": [ ]
|
}
|
]
|
}
|
},
|
"feedback": {
|
|
},
|
"filterSet": false
|
},
|
{
|
"details": {
|
"solution": "(index-tagged expression tree: tree=Node\n---Leaf { groupKey: 1, uniquenessKeys: 1 }, pos: 0\n---Leaf \n)"
|
},
|
"reason": {
|
"score": 1.0002,
|
"stats": {
|
"type": "KEEP_MUTATIONS",
|
"works": 31,
|
"yields": 17,
|
"unyields": 17,
|
"invalidates": 0,
|
"advanced": 0,
|
"needTime": 31,
|
"needFetch": 0,
|
"isEOF": 0,
|
"children": [
|
{
|
"type": "OR",
|
"works": 31,
|
"yields": 17,
|
"unyields": 17,
|
"invalidates": 0,
|
"advanced": 0,
|
"needTime": 31,
|
"needFetch": 0,
|
"isEOF": 0,
|
"dupsTested": 0,
|
"dupsDropped": 0,
|
"locsForgotten": 0,
|
"matchTested_0": 0,
|
"matchTested_1": 0,
|
"children": [
|
{
|
"type": "SORT",
|
"works": 31,
|
"yields": 17,
|
"unyields": 17,
|
"invalidates": 0,
|
"advanced": 0,
|
"needTime": 30,
|
"needFetch": 0,
|
"isEOF": 0,
|
"forcedFetches": 0,
|
"memUsage": 8190,
|
"memLimit": 33554432,
|
"children": [
|
{
|
"type": "FETCH",
|
"works": 30,
|
"yields": 17,
|
"unyields": 17,
|
"invalidates": 0,
|
"advanced": 1,
|
"needTime": 29,
|
"needFetch": 0,
|
"isEOF": 0,
|
"alreadyHasObj": 0,
|
"forcedFetches": 0,
|
"matchTested": 1,
|
"children": [
|
{
|
"type": "IXSCAN",
|
"works": 30,
|
"yields": 17,
|
"unyields": 17,
|
"invalidates": 0,
|
"advanced": 30,
|
"needTime": 0,
|
"needFetch": 0,
|
"isEOF": 0,
|
"keyPattern": "{ groupKey: 1, uniquenessKeys: 1 }",
|
"isMultiKey": 0,
|
"boundsVerbose": "field #0['groupKey']: [\"518dde6bc519cc16e935b45a_51247477c519e3a71e639634\", \"518dde6bc519cc16e935b45a_51247477c519e3a71e639634\"], field #1['uniquenessKeys']: [MinKey, MaxKey]",
|
"yieldMovedCursor": 0,
|
"dupsTested": 0,
|
"dupsDropped": 0,
|
"seenInvalidated": 0,
|
"matchTested": 0,
|
"keysExamined": 30,
|
"children": [ ]
|
}
|
]
|
}
|
]
|
},
|
{
|
"type": "SORT",
|
"works": 0,
|
"yields": 17,
|
"unyields": 17,
|
"invalidates": 0,
|
"advanced": 0,
|
"needTime": 0,
|
"needFetch": 0,
|
"isEOF": 0,
|
"forcedFetches": 0,
|
"memUsage": 0,
|
"memLimit": 33554432,
|
"children": [
|
{
|
"type": "FETCH",
|
"works": 0,
|
"yields": 17,
|
"unyields": 17,
|
"invalidates": 0,
|
"advanced": 0,
|
"needTime": 0,
|
"needFetch": 0,
|
"isEOF": 0,
|
"alreadyHasObj": 0,
|
"forcedFetches": 0,
|
"matchTested": 0,
|
"children": [
|
{
|
"type": "IXSCAN",
|
"works": 0,
|
"yields": 17,
|
"unyields": 17,
|
"invalidates": 0,
|
"advanced": 0,
|
"needTime": 0,
|
"needFetch": 0,
|
"isEOF": 0,
|
"keyPattern": "{ groupKey: 1, uniquenessKeys: 1 }",
|
"isMultiKey": 0,
|
"boundsVerbose": "field #0['groupKey']: [\"518dde6bc519cc16e935b45a_51247477c519e3a71e639634\", \"518dde6bc519cc16e935b45a_51247477c519e3a71e639634\"], field #1['uniquenessKeys']: [MinKey, MaxKey]",
|
"yieldMovedCursor": 0,
|
"dupsTested": 0,
|
"dupsDropped": 0,
|
"seenInvalidated": 0,
|
"matchTested": 0,
|
"keysExamined": 0,
|
"children": [ ]
|
}
|
]
|
}
|
]
|
}
|
]
|
}
|
]
|
}
|
},
|
"feedback": {
|
|
},
|
"filterSet": false
|
},
|
{
|
"details": {
|
"solution": "(index-tagged expression tree: tree=Node\n---Leaf { groupKey: 1, key: 1 }, pos: 0\n---Leaf \n)"
|
},
|
"reason": {
|
"score": 1.0002,
|
"stats": {
|
"type": "KEEP_MUTATIONS",
|
"works": 31,
|
"yields": 17,
|
"unyields": 17,
|
"invalidates": 0,
|
"advanced": 0,
|
"needTime": 28,
|
"needFetch": 3,
|
"isEOF": 0,
|
"children": [
|
{
|
"type": "OR",
|
"works": 31,
|
"yields": 17,
|
"unyields": 17,
|
"invalidates": 0,
|
"advanced": 0,
|
"needTime": 28,
|
"needFetch": 3,
|
"isEOF": 0,
|
"dupsTested": 0,
|
"dupsDropped": 0,
|
"locsForgotten": 0,
|
"matchTested_0": 0,
|
"matchTested_1": 0,
|
"children": [
|
{
|
"type": "SORT",
|
"works": 31,
|
"yields": 17,
|
"unyields": 17,
|
"invalidates": 0,
|
"advanced": 0,
|
"needTime": 27,
|
"needFetch": 3,
|
"isEOF": 0,
|
"forcedFetches": 0,
|
"memUsage": 225830,
|
"memLimit": 33554432,
|
"children": [
|
{
|
"type": "FETCH",
|
"works": 30,
|
"yields": 17,
|
"unyields": 17,
|
"invalidates": 0,
|
"advanced": 26,
|
"needTime": 1,
|
"needFetch": 3,
|
"isEOF": 0,
|
"alreadyHasObj": 0,
|
"forcedFetches": 0,
|
"matchTested": 26,
|
"children": [
|
{
|
"type": "IXSCAN",
|
"works": 27,
|
"yields": 17,
|
"unyields": 17,
|
"invalidates": 0,
|
"advanced": 27,
|
"needTime": 0,
|
"needFetch": 0,
|
"isEOF": 0,
|
"keyPattern": "{ groupKey: 1, key: 1 }",
|
"isMultiKey": 0,
|
"boundsVerbose": "field #0['groupKey']: [\"518dde6bc519cc16e935b45a_51247477c519e3a71e639634\", \"518dde6bc519cc16e935b45a_51247477c519e3a71e639634\"], field #1['key']: [MinKey, MaxKey]",
|
"yieldMovedCursor": 0,
|
"dupsTested": 0,
|
"dupsDropped": 0,
|
"seenInvalidated": 0,
|
"matchTested": 0,
|
"keysExamined": 27,
|
"children": [ ]
|
}
|
]
|
}
|
]
|
},
|
{
|
"type": "SORT",
|
"works": 0,
|
"yields": 17,
|
"unyields": 17,
|
"invalidates": 0,
|
"advanced": 0,
|
"needTime": 0,
|
"needFetch": 0,
|
"isEOF": 0,
|
"forcedFetches": 0,
|
"memUsage": 0,
|
"memLimit": 33554432,
|
"children": [
|
{
|
"type": "FETCH",
|
"works": 0,
|
"yields": 17,
|
"unyields": 17,
|
"invalidates": 0,
|
"advanced": 0,
|
"needTime": 0,
|
"needFetch": 0,
|
"isEOF": 0,
|
"alreadyHasObj": 0,
|
"forcedFetches": 0,
|
"matchTested": 0,
|
"children": [
|
{
|
"type": "IXSCAN",
|
"works": 0,
|
"yields": 17,
|
"unyields": 17,
|
"invalidates": 0,
|
"advanced": 0,
|
"needTime": 0,
|
"needFetch": 0,
|
"isEOF": 0,
|
"keyPattern": "{ groupKey: 1, key: 1 }",
|
"isMultiKey": 0,
|
"boundsVerbose": "field #0['groupKey']: [\"518dde6bc519cc16e935b45a_51247477c519e3a71e639634\", \"518dde6bc519cc16e935b45a_51247477c519e3a71e639634\"], field #1['key']: [MinKey, MaxKey]",
|
"yieldMovedCursor": 0,
|
"dupsTested": 0,
|
"dupsDropped": 0,
|
"seenInvalidated": 0,
|
"matchTested": 0,
|
"keysExamined": 0,
|
"children": [ ]
|
}
|
]
|
}
|
]
|
}
|
]
|
}
|
]
|
}
|
},
|
"feedback": {
|
|
},
|
"filterSet": false
|
},
|
{
|
"details": {
|
"solution": "(index-tagged expression tree: tree=Node\n---Leaf { groupKey: 1.0, updated: 1.0 }, pos: 0\n---Leaf \n)"
|
},
|
"reason": {
|
"score": 1.0002,
|
"stats": {
|
"type": "KEEP_MUTATIONS",
|
"works": 31,
|
"yields": 17,
|
"unyields": 17,
|
"invalidates": 0,
|
"advanced": 0,
|
"needTime": 28,
|
"needFetch": 3,
|
"isEOF": 0,
|
"children": [
|
{
|
"type": "OR",
|
"works": 31,
|
"yields": 17,
|
"unyields": 17,
|
"invalidates": 0,
|
"advanced": 0,
|
"needTime": 28,
|
"needFetch": 3,
|
"isEOF": 0,
|
"dupsTested": 0,
|
"dupsDropped": 0,
|
"locsForgotten": 0,
|
"matchTested_0": 0,
|
"matchTested_1": 0,
|
"children": [
|
{
|
"type": "SORT",
|
"works": 31,
|
"yields": 17,
|
"unyields": 17,
|
"invalidates": 0,
|
"advanced": 0,
|
"needTime": 27,
|
"needFetch": 3,
|
"isEOF": 0,
|
"forcedFetches": 0,
|
"memUsage": 248340,
|
"memLimit": 33554432,
|
"children": [
|
{
|
"type": "FETCH",
|
"works": 30,
|
"yields": 17,
|
"unyields": 17,
|
"invalidates": 0,
|
"advanced": 27,
|
"needTime": 0,
|
"needFetch": 3,
|
"isEOF": 0,
|
"alreadyHasObj": 0,
|
"forcedFetches": 0,
|
"matchTested": 27,
|
"children": [
|
{
|
"type": "IXSCAN",
|
"works": 27,
|
"yields": 17,
|
"unyields": 17,
|
"invalidates": 0,
|
"advanced": 27,
|
"needTime": 0,
|
"needFetch": 0,
|
"isEOF": 0,
|
"keyPattern": "{ groupKey: 1.0, updated: 1.0 }",
|
"isMultiKey": 0,
|
"boundsVerbose": "field #0['groupKey']: [\"518dde6bc519cc16e935b45a_51247477c519e3a71e639634\", \"518dde6bc519cc16e935b45a_51247477c519e3a71e639634\"], field #1['updated']: [MinKey, MaxKey]",
|
"yieldMovedCursor": 0,
|
"dupsTested": 0,
|
"dupsDropped": 0,
|
"seenInvalidated": 0,
|
"matchTested": 0,
|
"keysExamined": 27,
|
"children": [ ]
|
}
|
]
|
}
|
]
|
},
|
{
|
"type": "SORT",
|
"works": 0,
|
"yields": 17,
|
"unyields": 17,
|
"invalidates": 0,
|
"advanced": 0,
|
"needTime": 0,
|
"needFetch": 0,
|
"isEOF": 0,
|
"forcedFetches": 0,
|
"memUsage": 0,
|
"memLimit": 33554432,
|
"children": [
|
{
|
"type": "FETCH",
|
"works": 0,
|
"yields": 17,
|
"unyields": 17,
|
"invalidates": 0,
|
"advanced": 0,
|
"needTime": 0,
|
"needFetch": 0,
|
"isEOF": 0,
|
"alreadyHasObj": 0,
|
"forcedFetches": 0,
|
"matchTested": 0,
|
"children": [
|
{
|
"type": "IXSCAN",
|
"works": 0,
|
"yields": 17,
|
"unyields": 17,
|
"invalidates": 0,
|
"advanced": 0,
|
"needTime": 0,
|
"needFetch": 0,
|
"isEOF": 0,
|
"keyPattern": "{ groupKey: 1.0, updated: 1.0 }",
|
"isMultiKey": 0,
|
"boundsVerbose": "field #0['groupKey']: [\"518dde6bc519cc16e935b45a_51247477c519e3a71e639634\", \"518dde6bc519cc16e935b45a_51247477c519e3a71e639634\"], field #1['updated']: [MinKey, MaxKey]",
|
"yieldMovedCursor": 0,
|
"dupsTested": 0,
|
"dupsDropped": 0,
|
"seenInvalidated": 0,
|
"matchTested": 0,
|
"keysExamined": 0,
|
"children": [ ]
|
}
|
]
|
}
|
]
|
}
|
]
|
}
|
]
|
}
|
},
|
"feedback": {
|
|
},
|
"filterSet": false
|
}
|
]
|
|
|
Mongo 2.6.7 seems to often choose the wrong index for a query of the form
{ "foo": "fooValue", "_id": { "$gte": "idValue" } }
|
with sort:
We typically apply a limit of around 25 as well. Not sure that is relevant.
When Mongo chooses the wrong index, the query takes significantly longer to execute than when the correct index is chosen. Sometimes Mongo chooses the correct index on its own; in other cases while troubleshooting this issue, we have forced it to use the correct index with hint().
Here's what we see in mongodb.log when Mongo decides to use the wrong index:
2015-02-10T17:30:02.222-0500 [conn30278] query klerk.ProductData query: { $query: { groupKey: "4e20d04bec33075d8671fbec_51247477c519e3a71e639634", _id: { $gte: ObjectId('53224505e4b055a5d8ac41fb') } }, $orderby: { _id: 1 } } planSummary: IXSCAN { _id: 1 } ntoreturn:26 ntoskip:0 nscanned:1213701 nscannedObjects:1213701 keyUpdates:0 numYields:899175 locks(micros) r:68739007 nreturned:9 reslen:55587 901318ms
|
Per instructions in a comment on SERVER-15802:
1. Increased log level:
set1:PRIMARY> db.adminCommand( { setParameter: 1, logLevel: 2 } )
|
{ "was" : 0, "ok" : 1 }
|
2. List of indexes in the collection:
set1:PRIMARY> db.ProductData.getIndexes()
|
[
|
{
|
"v" : 1,
|
"name" : "_id_",
|
"key" : {
|
"_id" : 1
|
},
|
"ns" : "klerk.ProductData"
|
},
|
{
|
"v" : 1,
|
"name" : "groupKey_1_uniquenessKeys_1",
|
"key" : {
|
"groupKey" : 1,
|
"uniquenessKeys" : 1
|
},
|
"ns" : "klerk.ProductData",
|
"background" : true
|
},
|
{
|
"v" : 1,
|
"name" : "groupKey_1_key_1",
|
"key" : {
|
"groupKey" : 1,
|
"key" : 1
|
},
|
"ns" : "klerk.ProductData",
|
"background" : true
|
},
|
{
|
"v" : 1,
|
"name" : "jobIds_1",
|
"key" : {
|
"jobIds" : 1
|
},
|
"ns" : "klerk.ProductData",
|
"background" : true
|
},
|
{
|
"v" : 1,
|
"name" : "groupKey_1__id_1",
|
"key" : {
|
"groupKey" : 1,
|
"_id" : 1
|
},
|
"ns" : "klerk.ProductData",
|
"background" : true
|
},
|
{
|
"v" : 1,
|
"name" : "groupKey_1_updated_1",
|
"key" : {
|
"groupKey" : 1,
|
"updated" : 1
|
},
|
"ns" : "klerk.ProductData",
|
"background" : true
|
}
|
]
|
3. Query shapes from the plan cache:
set1:PRIMARY> db.ProductData.getPlanCache().listQueryShapes()
|
[
|
{
|
"query" : {
|
"groupKey" : "53196e7cc51930a52d3ef36b_51247477c519e3a71e639634",
|
"key" : "DB-MXL190301"
|
},
|
"sort" : {
|
|
},
|
"projection" : {
|
|
}
|
}
|
]
|
4. getPlansByQuery on the offending query:
set1:PRIMARY> db.ProductData.getPlanCache().getPlansByQuery({ groupKey: "4e20d04bec33075d8671fbec_51247477c519e3a71e639634", "_id": { $gte: ObjectId("53224505e4b055a5d8ac41fb") } }, {}, { "_id": 1 })
|
[ ]
|
5. Query with explain(true):
set1:PRIMARY> db.ProductData.find({ groupKey: "4e20d04bec33075d8671fbec_51247477c519e3a71e639634", "_id": { $gte: ObjectId("53224505e4b055a5d8ac41fb") } }).sort({ "_id": 1 }).explain(true)
|
{
|
"cursor" : "BtreeCursor groupKey_1__id_1",
|
"isMultiKey" : false,
|
"n" : 9,
|
"nscannedObjects" : 9,
|
"nscanned" : 9,
|
"nscannedObjectsAllPlans" : 46,
|
"nscannedAllPlans" : 46,
|
"scanAndOrder" : false,
|
"indexOnly" : false,
|
"nYields" : 33,
|
"nChunkSkips" : 0,
|
"millis" : 472,
|
"indexBounds" : {
|
"groupKey" : [
|
[
|
"4e20d04bec33075d8671fbec_51247477c519e3a71e639634",
|
"4e20d04bec33075d8671fbec_51247477c519e3a71e639634"
|
]
|
],
|
"_id" : [
|
[
|
ObjectId("53224505e4b055a5d8ac41fb"),
|
ObjectId("ffffffffffffffffffffffff")
|
]
|
]
|
},
|
"allPlans" : [
|
{
|
"cursor" : "BtreeCursor groupKey_1__id_1",
|
"isMultiKey" : false,
|
"n" : 9,
|
"nscannedObjects" : 9,
|
"nscanned" : 9,
|
"scanAndOrder" : false,
|
"indexOnly" : false,
|
"nChunkSkips" : 0,
|
"indexBounds" : {
|
"groupKey" : [
|
[
|
"4e20d04bec33075d8671fbec_51247477c519e3a71e639634",
|
"4e20d04bec33075d8671fbec_51247477c519e3a71e639634"
|
]
|
],
|
"_id" : [
|
[
|
ObjectId("53224505e4b055a5d8ac41fb"),
|
ObjectId("ffffffffffffffffffffffff")
|
]
|
]
|
}
|
},
|
{
|
"cursor" : "BtreeCursor _id_",
|
"isMultiKey" : false,
|
"n" : 1,
|
"nscannedObjects" : 11,
|
"nscanned" : 11,
|
"scanAndOrder" : false,
|
"indexOnly" : false,
|
"nChunkSkips" : 0,
|
"indexBounds" : {
|
"_id" : [
|
[
|
ObjectId("53224505e4b055a5d8ac41fb"),
|
ObjectId("ffffffffffffffffffffffff")
|
]
|
]
|
}
|
},
|
{
|
"cursor" : "BtreeCursor groupKey_1_uniquenessKeys_1",
|
"isMultiKey" : false,
|
"n" : 0,
|
"nscannedObjects" : 10,
|
"nscanned" : 10,
|
"scanAndOrder" : true,
|
"indexOnly" : false,
|
"nChunkSkips" : 0,
|
"indexBounds" : {
|
"groupKey" : [
|
[
|
"4e20d04bec33075d8671fbec_51247477c519e3a71e639634",
|
"4e20d04bec33075d8671fbec_51247477c519e3a71e639634"
|
]
|
],
|
"uniquenessKeys" : [
|
[
|
{
|
"$minElement" : 1
|
},
|
{
|
"$maxElement" : 1
|
}
|
]
|
]
|
}
|
},
|
{
|
"cursor" : "BtreeCursor groupKey_1_key_1",
|
"isMultiKey" : false,
|
"n" : 0,
|
"nscannedObjects" : 8,
|
"nscanned" : 8,
|
"scanAndOrder" : true,
|
"indexOnly" : false,
|
"nChunkSkips" : 0,
|
"indexBounds" : {
|
"groupKey" : [
|
[
|
"4e20d04bec33075d8671fbec_51247477c519e3a71e639634",
|
"4e20d04bec33075d8671fbec_51247477c519e3a71e639634"
|
]
|
],
|
"key" : [
|
[
|
{
|
"$minElement" : 1
|
},
|
{
|
"$maxElement" : 1
|
}
|
]
|
]
|
}
|
},
|
{
|
"cursor" : "BtreeCursor groupKey_1_updated_1",
|
"isMultiKey" : false,
|
"n" : 0,
|
"nscannedObjects" : 8,
|
"nscanned" : 8,
|
"scanAndOrder" : true,
|
"indexOnly" : false,
|
"nChunkSkips" : 0,
|
"indexBounds" : {
|
"groupKey" : [
|
[
|
"4e20d04bec33075d8671fbec_51247477c519e3a71e639634",
|
"4e20d04bec33075d8671fbec_51247477c519e3a71e639634"
|
]
|
],
|
"updated" : [
|
[
|
{
|
"$minElement" : 1
|
},
|
{
|
"$maxElement" : 1
|
}
|
]
|
]
|
}
|
}
|
],
|
"server" : "mdb02:27017",
|
"filterSet" : false,
|
"stats" : {
|
"type" : "FETCH",
|
"works" : 17,
|
"yields" : 33,
|
"unyields" : 33,
|
"invalidates" : 0,
|
"advanced" : 9,
|
"needTime" : 0,
|
"needFetch" : 6,
|
"isEOF" : 1,
|
"alreadyHasObj" : 0,
|
"forcedFetches" : 0,
|
"matchTested" : 0,
|
"children" : [
|
{
|
"type" : "IXSCAN",
|
"works" : 10,
|
"yields" : 33,
|
"unyields" : 33,
|
"invalidates" : 0,
|
"advanced" : 9,
|
"needTime" : 0,
|
"needFetch" : 0,
|
"isEOF" : 1,
|
"keyPattern" : "{ groupKey: 1, _id: 1 }",
|
"isMultiKey" : 0,
|
"boundsVerbose" : "field #0['groupKey']: [\"4e20d04bec33075d8671fbec_51247477c519e3a71e639634\", \"4e20d04bec33075d8671fbec_51247477c519e3a71e639634\"], field #1['_id']: [ObjectId('53224505e4b055a5d8ac41fb'), ObjectId('ffffffffffffffffffffffff')]",
|
"yieldMovedCursor" : 0,
|
"dupsTested" : 0,
|
"dupsDropped" : 0,
|
"seenInvalidated" : 0,
|
"matchTested" : 0,
|
"keysExamined" : 9,
|
"children" : [ ]
|
}
|
]
|
}
|
}
|
6. Re-set the log level to the previous value:
set1:PRIMARY> db.adminCommand( { setParameter: 1, logLevel: 0 } )
|
{ "was" : 2, "ok" : 1 }
|
Relevant output from mongodb.log:
2015-02-11T12:29:31.089-0500 [conn54874] run command klerk.$cmd { planCacheListPlans: "ProductData", query: { groupKey: "4e20d04bec33075d8671fbec_51247477c519e3a71e639634", _id: { $gte: ObjectId('53224505e4b055a5d8ac41fb') } }, projection: {}, sort: { _id: 1.0 } }
|
2015-02-11T12:29:31.089-0500 [conn54874] command klerk.$cmd command: planCacheListPlans { planCacheListPlans: "ProductData", query: { groupKey: "4e20d04bec33075d8671fbec_51247477c519e3a71e639634", _id: { $gte: ObjectId('53224505e4b055a5d8ac41fb') } }, projection: {}, sort: { _id: 1.0 } } keyUpdates:0 numYields:0 locks( micros) r:36 reslen:49 0ms
|
|
...
|
|
2015-02-11T12:29:37.781-0500 [conn54874] Running query: query: { groupKey: "4e20d04bec33075d8671fbec_51247477c519e3a71e639634", _id: { $gte: ObjectId('53224505e4b055a5d8ac41fb') } } sort: { _id: 1.0 } projection: {} skip: 0 limit: 0
|
2015-02-11T12:29:37.781-0500 [conn32535] Only one plan is available; it will be run but will not be cached. query: {} sort: {} projection: {} skip: 0 limit: 0, planSummary: COLLSCAN
|
2015-02-11T12:29:37.781-0500 [conn54874] Relevant index 0 is kp: { _id: 1 } io: { v: 1, name: "_id_", key: { _id: 1 }, ns: "klerk.ProductData" }
|
2015-02-11T12:29:37.781-0500 [conn54874] Relevant index 1 is kp: { groupKey: 1, uniquenessKeys: 1 } io: { v: 1, name: "groupKey_1_uniquenessKeys_1", key: { groupKey: 1, uniquenessKeys: 1 }, ns: "klerk.ProductData", background: true }
|
2015-02-11T12:29:37.781-0500 [conn54874] Relevant index 2 is kp: { groupKey: 1, key: 1 } io: { v: 1, name: "groupKey_1_key_1", key: { groupKey: 1, key: 1 }, ns: "klerk. ProductData", background: true }
|
2015-02-11T12:29:37.781-0500 [conn54874] Relevant index 3 is kp: { groupKey: 1, _id: 1 } io: { v: 1, name: "groupKey_1__id_1", key: { groupKey: 1, _id: 1 }, ns: "klerk. ProductData", background: true }
|
2015-02-11T12:29:37.781-0500 [conn54874] Relevant index 4 is kp: { groupKey: 1.0, updated: 1.0 } io: { v: 1, name: "groupKey_1_updated_1", key: { groupKey: 1.0, updated: 1.0 }, ns: "klerk.ProductData", background: true }
|
2015-02-11T12:29:37.797-0500 [conn54874] Relevant index 0 is kp: { _id: 1.0 } multikey
|
2015-02-11T12:29:37.797-0500 [conn54874] Relevant index 0 is kp: { _id: 1.0 } multikey
|
2015-02-11T12:29:37.797-0500 [slaveTracking] Relevant index 0 is kp: { _id: 1 } io: { v: 1, name: "_id_", key: { _id: 1 }, ns: "local.slaves" }
|
|
...
|
|
2015-02-11T12:29:38.265-0500 [conn54874] query klerk.ProductData query: { query: { groupKey: "4e20d04bec33075d8671fbec_51247477c519e3a71e639634", _id: { $gte: ObjectId('53224505e4b055a5d8ac41fb') } }, orderby: { _id: 1.0 }, $explain: true } planSummary: IXSCAN { groupKey: 1, _id: 1 } ntoreturn:0 ntoskip:0 nscanned:9 nscannedObjects:9 keyUpdates:0 numYields:31 locks(micros) r:401901 nreturned:1 reslen:2955 472ms
|
|