MongoDB shell版本v4.0.5:非常慢的查询| 花时间拿取| 数据大小:一个集合中的2-3百万个文档,大约有13-15个这样的集合。
系统配置:
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 6
On-line CPU(s) list: 0-5
Thread(s) per core: 1
Core(s) per socket: 6
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 79
Stepping: 1
CPU MHz: 2097.570
BogoMIPS: 4195.14
Hypervisor vendor: VMware
Virtualization type: full
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 20480K
NUMA node0 CPU(s): 0-5
MemTotal: 16432268 kB
我已经对表进行了索引,并且工作正常但是,系统花费了大量时间:
以下是查询规划器:
db.vnms_vccells_5.find({auid:"<1e000097>",hub_ip:"10.252.0.105",sector_ip:"<1e000046>", last_updated_time:{$gt:"2016-12-24 05:49:00"}}).explain("executionStats")
{
"queryPlanner" : {
"plannerVersion" : 1,
"namespace" : "opennms.vnms_vccells_5",
"indexFilterSet" : false,
"parsedQuery" : {
"$and" : [
{
"auid" : {
"$eq" : "<1e000097>"
}
},
{
"hub_ip" : {
"$eq" : "10.252.0.105"
}
},
{
"sector_ip" : {
"$eq" : "<1e000046>"
}
},
{
"last_updated_time" : {
"$gt" : "2016-12-24 05:49:00"
}
}
]
},
"winningPlan" : {
"stage" : "FETCH",
"inputStage" : {
"stage" : "IXSCAN",
"keyPattern" : {
"auid" : 1,
"hub_ip" : 1,
"sector_ip" : 1,
"last_updated_time" : -1
},
"indexName" : "auid_1_hub_ip_1_sector_ip_1_last_updated_time_-1",
"isMultiKey" : false,
"multiKeyPaths" : {
"auid" : [ ],
"hub_ip" : [ ],
"sector_ip" : [ ],
"last_updated_time" : [ ]
},
"isUnique" : false,
"isSparse" : false,
"isPartial" : false,
"indexVersion" : 2,
"direction" : "forward",
"indexBounds" : {
"auid" : [
"[\"<1e000097>\", \"<1e000097>\"]"
],
"hub_ip" : [
"[\"10.252.0.105\", \"10.252.0.105\"]"
],
"sector_ip" : [
"[\"<1e000046>\", \"<1e000046>\"]"
],
"last_updated_time" : [
"({}, \"2016-12-24 05:49:00\")"
]
}
}
},
"rejectedPlans" : [ ]
},
"executionStats" : {
"executionSuccess" : true,
"nReturned" : 28788,
"executionTimeMillis" : 34989,
"totalKeysExamined" : 28788,
"totalDocsExamined" : 28788,
"executionStages" : {
"stage" : "FETCH",
"nReturned" : 28788,
"executionTimeMillisEstimate" : 34475,
"works" : 28789,
"advanced" : 28788,
"needTime" : 0,
"needYield" : 0,
"saveState" : 1039,
"restoreState" : 1039,
"isEOF" : 1,
"invalidates" : 0,
"docsExamined" : 28788,
"alreadyHasObj" : 0,
"inputStage" : {
"stage" : "IXSCAN",
"nReturned" : 28788,
"executionTimeMillisEstimate" : 7730,
"works" : 28789,
"advanced" : 28788,
"needTime" : 0,
"needYield" : 0,
"saveState" : 1039,
"restoreState" : 1039,
"isEOF" : 1,
"invalidates" : 0,
"keyPattern" : {
"auid" : 1,
"hub_ip" : 1,
"sector_ip" : 1,
"last_updated_time" : -1
},
"indexName" : "auid_1_hub_ip_1_sector_ip_1_last_updated_time_-1",
"isMultiKey" : false,
"multiKeyPaths" : {
"auid" : [ ],
"hub_ip" : [ ],
"sector_ip" : [ ],
"last_updated_time" : [ ]
},
"isUnique" : false,
"isSparse" : false,
"isPartial" : false,
"indexVersion" : 2,
"direction" : "forward",
"indexBounds" : {
"auid" : [
"[\"<1e000097>\", \"<1e000097>\"]"
],
"hub_ip" : [
"[\"10.252.0.105\", \"10.252.0.105\"]"
],
"sector_ip" : [
"[\"<1e000046>\", \"<1e000046>\"]"
],
"last_updated_time" : [
"({}, \"2016-12-24 05:49:00\")"
]
},
"keysExamined" : 28788,
"seeks" : 1,
"dupsTested" : 0,
"dupsDropped" : 0,
"seenInvalidated" : 0
}
}
},
"serverInfo" : {
"host" : "vnms",
"port" : 27017,
"version" : "4.0.5",
"gitVersion" : "3739429dd92b92d1b0ab120911a23d50bf03c412"
},
"ok" : 1
}
以下是mongostat数据:
insert query update delete getmore command dirty used flushes vsize res qrw arw net_in net_out conn time
*0 *0 *0 *0 0 3|0 0.0% 80.0% 0 5.26G 3.52G 0|0 3|0 254b 101k 7 Jan 23 10:20:41.082
*0 *0 *0 *0 0 1|0 0.0% 80.0% 0 5.26G 3.52G 0|0 3|0 134b 53.0k 7 Jan 23 10:20:42.261
*0 *0 *0 *0 0 1|0 0.0% 80.0% 0 5.26G 3.52G 0|0 3|0 147b 58.4k 7 Jan 23 10:20:43.329
*0 *0 *0 *0 0 1|0 0.0% 80.0% 0 5.26G 3.52G 0|0 3|0 138b 54.8k 7 Jan 23 10:20:44.469
*0 *0 *0 *0 0 3|0 0.0% 79.9% 0 5.26G 3.52G 0|0 3|0 277b 81.9k 7 Jan 23 10:20:45.232
*0 *0 *0 *0 0 1|0 0.0% 80.0% 0 5.26G 3.52G 0|0 3|0 138b 54.8k 7 Jan 23 10:20:46.371