-
Type: Bug
-
Resolution: Done
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
ALL
hi:
my mongodb is 5.0.when i use aggregate $group state for count.difference $group that difference executions plan.
--this genergate not covered query cause poor performance
db.xiaoxu.aggregate([\{ $match:{fld4:null}},\{$group:{_id:"$fld4",total:{$sum:1}}}])
{ "explainVersion" : "1", "stages" : [ { "$cursor" : { "queryPlanner" : { "namespace" : "POCDB.xiaoxu", "indexFilterSet" : false, "parsedQuery" : { "fld4" : { "$eq" : null } }, "queryHash" : "7937EE4F", "planCacheKey" : "C77A1A63", "maxIndexedOrSolutionsReached" : false, "maxIndexedAndSolutionsReached" : false, "maxScansToExplodeReached" : false, "winningPlan" : { "stage" : "PROJECTION_SIMPLE", "transformBy" : { "fld4" : 1, "_id" : 0 } , "inputStage" : { "stage" : "FETCH", "filter" : { "fld4" : { "$eq" : null } }, "inputStage" : { "stage" : "IXSCAN", "keyPattern" : { "fld4" : 1 } , "indexName" : "fld4_1", "isMultiKey" : false, "multiKeyPaths" : { "fld4" : [ ] } , "isUnique" : false, "isSparse" : false, "isPartial" : false, "indexVersion" : 2, "direction" : "forward", "indexBounds" : { "fld4" : [ "[undefined, undefined]", "[null, null]" ] } } } }, "rejectedPlans" : [ ] }, "executionStats" : { "executionSuccess" : true, "nReturned" : 550000, "executionTimeMillis" : 1332, "totalKeysExamined" : 550001, "totalDocsExamined" : 550000, "executionStages" : { "stage" : "PROJECTION_SIMPLE", "nReturned" : 550000, "executionTimeMillisEstimate" : 158, "works" : 550001, "advanced" : 550000, "needTime" : 0, "needYield" : 0, "saveState" : 570, "restoreState" : 570, "isEOF" : 1, "transformBy" : { "fld4" : 1, "_id" : 0 } , "inputStage" : { "stage" : "FETCH", "filter" : { "fld4" : { "$eq" : null } }, "nReturned" : 550000, "executionTimeMillisEstimate" : 121, "works" : 550001, "advanced" : 550000, "needTime" : 0, "needYield" : 0, "saveState" : 570, "restoreState" : 570, "isEOF" : 1, "docsExamined" : 550000, "alreadyHasObj" : 0, "inputStage" : { "stage" : "IXSCAN", "nReturned" : 550000, "executionTimeMillisEstimate" : 40, "works" : 550001, "advanced" : 550000, "needTime" : 0, "needYield" : 0, "saveState" : 570, "restoreState" : 570, "isEOF" : 1, "keyPattern" : { "fld4" : 1 } , "indexName" : "fld4_1", "isMultiKey" : false, "multiKeyPaths" : { "fld4" : [ ] } , "isUnique" : false, "isSparse" : false, "isPartial" : false, "indexVersion" : 2, "direction" : "forward", "indexBounds" : { "fld4" : [ "[undefined, undefined]", "[null, null]" ] } , "keysExamined" : 550001, "seeks" : 1, "dupsTested" : 0, "dupsDropped" : 0, "indexDef" : { "indexName" : "fld4_1", "isMultiKey" : false, "multiKeyPaths" : { "fld4" : [ ] } , "keyPattern" : { "fld4" : 1 } , "isUnique" : false, "isSparse" : false, "isPartial" : false, "direction" : "forward" } } } } } }, "nReturned" : 550000, "executionTimeMillisEstimate" : 1217 }, { "$group" : { "_id" : "$fld4", "total" : { "$sum" : { "$const" : 1 } } }, "maxAccumulatorMemoryUsageBytes" : { "total" : 72 } , "totalOutputDataSizeBytes" : 229, "usedDisk" : false, "nReturned" : 1, "executionTimeMillisEstimate" : 1330 } ], "serverInfo" : { "host" : "vmt30129", "port" : 51001, "version" : "5.0.2", "gitVersion" : "6d9ec525e78465dcecadcff99cce953d380fedc8" } , "serverParameters" : { "internalQueryFacetBufferSizeBytes" : 104857600, "internalQueryFacetMaxOutputDocSizeBytes" : 104857600, "internalLookupStageIntermediateDocumentMaxSizeBytes" : 104857600, "internalDocumentSourceGroupMaxMemoryBytes" : 104857600, "internalQueryMaxBlockingSortMemoryUsageBytes" : 104857600, "internalQueryProhibitBlockingMergeOnMongoS" : 0, "internalQueryMaxAddToSetBytes" : 104857600, "internalDocumentSourceSetWindowFieldsMaxMemoryBytes" : 104857600 } , "command" : { "aggregate" : "xiaoxu", "pipeline" : [ { "$match" : { "fld4" : null } }, { "$group" : { "_id" : "$fld4", "total" : { "$sum" : 1 } } } ], "cursor" : { }, "$db" : "POCDB" }, "ok" : 1 } --this genergate covered query db.xiaoxu.aggregate([\{ $match:{fld4:null}},\{$group:{_id:null,total:{$sum:1}}}]) { "explainVersion" : "1", "stages" : [ { "$cursor" : { "queryPlanner" : { "namespace" : "POCDB.xiaoxu", "indexFilterSet" : false, "parsedQuery" : { "fld4" : { "$eq" : null } }, "queryHash" : "2B634F0D", "planCacheKey" : "FC6E7CF8", "maxIndexedOrSolutionsReached" : false, "maxIndexedAndSolutionsReached" : false, "maxScansToExplodeReached" : false, "winningPlan" : { "stage" : "OR", "inputStages" : [ { "stage" : "COUNT_SCAN", "keyPattern" : { "fld4" : 1 } , "indexName" : "fld4_1", "isMultiKey" : false, "multiKeyPaths" : { "fld4" : [ ] } , "isUnique" : false, "isSparse" : false, "isPartial" : false, "indexVersion" : 2, "indexBounds" : { "startKey" : { "fld4" : undefined } , "startKeyInclusive" : true, "endKey" : { "fld4" : undefined } , "endKeyInclusive" : true } }, { "stage" : "COUNT_SCAN", "keyPattern" : { "fld4" : 1 } , "indexName" : "fld4_1", "isMultiKey" : false, "multiKeyPaths" : { "fld4" : [ ] } , "isUnique" : false, "isSparse" : false, "isPartial" : false, "indexVersion" : 2, "indexBounds" : { "startKey" : { "fld4" : null } , "startKeyInclusive" : true, "endKey" : { "fld4" : null } , "endKeyInclusive" : true } } ] }, "rejectedPlans" : [ ] }, "executionStats" : { "executionSuccess" : true, "nReturned" : 550000, "executionTimeMillis" : 424, "totalKeysExamined" : 550002, "totalDocsExamined" : 0, "executionStages" : { "stage" : "OR", "nReturned" : 550000, "executionTimeMillisEstimate" : 60, "works" : 550002, "advanced" : 550000, "needTime" : 1, "needYield" : 0, "saveState" : 551, "restoreState" : 551, "isEOF" : 1, "dupsTested" : 550000, "dupsDropped" : 0, "inputStages" : [ { "stage" : "COUNT_SCAN", "nReturned" : 0, "executionTimeMillisEstimate" : 0, "works" : 1, "advanced" : 0, "needTime" : 0, "needYield" : 0, "saveState" : 551, "restoreState" : 551, "isEOF" : 1, "keysExamined" : 1, "keyPattern" : { "fld4" : 1 } , "indexName" : "fld4_1", "isMultiKey" : false, "multiKeyPaths" : { "fld4" : [ ] } , "isUnique" : false, "isSparse" : false, "isPartial" : false, "indexVersion" : 2, "indexBounds" : { "startKey" : { "fld4" : undefined } , "startKeyInclusive" : true, "endKey" : { "fld4" : undefined } , "endKeyInclusive" : true } }, { "stage" : "COUNT_SCAN", "nReturned" : 550000, "executionTimeMillisEstimate" : 18, "works" : 550001, "advanced" : 550000, "needTime" : 0, "needYield" : 0, "saveState" : 551, "restoreState" : 551, "isEOF" : 1, "keysExamined" : 550001, "keyPattern" : { "fld4" : 1 } , "indexName" : "fld4_1", "isMultiKey" : false, "multiKeyPaths" : { "fld4" : [ ] } , "isUnique" : false, "isSparse" : false, "isPartial" : false, "indexVersion" : 2, "indexBounds" : { "startKey" : { "fld4" : null } , "startKeyInclusive" : true, "endKey" : { "fld4" : null } , "endKeyInclusive" : true } } ] } } }, "nReturned" : 550000, "executionTimeMillisEstimate" : 362 }, { "$group" : { "_id" : { "$const" : null } , "total" : { "$sum" : { "$const" : 1 } } }, "maxAccumulatorMemoryUsageBytes" : { "total" : 72 } , "totalOutputDataSizeBytes" : 229, "usedDisk" : false, "nReturned" : 1, "executionTimeMillisEstimate" : 415 } ], "serverInfo" : { "host" : "vmt30129", "port" : 51001, "version" : "5.0.2", "gitVersion" : "6d9ec525e78465dcecadcff99cce953d380fedc8" } , "serverParameters" : { "internalQueryFacetBufferSizeBytes" : 104857600, "internalQueryFacetMaxOutputDocSizeBytes" : 104857600, "internalLookupStageIntermediateDocumentMaxSizeBytes" : 104857600, "internalDocumentSourceGroupMaxMemoryBytes" : 104857600, "internalQueryMaxBlockingSortMemoryUsageBytes" : 104857600, "internalQueryProhibitBlockingMergeOnMongoS" : 0, "internalQueryMaxAddToSetBytes" : 104857600, "internalDocumentSourceSetWindowFieldsMaxMemoryBytes" : 104857600 } , "command" : { "aggregate" : "xiaoxu", "pipeline" : [ { "$match" : { "fld4" : null } }, { "$group" : { "_id" : null, "total" : { "$sum" : 1 } } } ], "cursor" : { }, "$db" : "POCDB" }, "ok" : 1 }