記一次Mongodb聚合查詢 慢查詢簡單分析

2021-10-10 14:28:51 字數 1625 閱讀 8496

記一次mongodb聚合查詢

一、慢查詢

db.public_setting_detail.aggregate([

}, }

},"isdir": 1,

"status": 1

}}, ,

"createtime":

}}],)

執行分析結果

// 1

, "fields": ,

"queryplanner": ,

"winningplan": ,

"direction": "forward"

},"rejectedplans": [ ]}}

},},}},

"isdir": 1,

"status": 1}},

,"createtime": }}

],"ok": 1,

"$glestats":

}

很明顯,上述執行結果中,我們看到 為全表掃瞄了

為什麼呢?其實和聚合的查詢順序是有關係的

db.public_setting_detail.aggregate([}},

"isdir": 1,

"status": 1

}}, },,

"createtime":

}}],)

調整match與project順序,先執行索引查詢,在執行對應的聚合操作

二、優化後查詢

db.public_setting_detail.aggregate([}},

"isdir": 1,

"status": 1

}},}, ,

"createtime":

}}],)

執行分析結果

// 1}},

"isdir": 1,

"status": 1

},"fields": ,

"queryplanner": }}

},},

},},}]

},"winningplan": }}

},"inputstage": ,

"indexname": "idx_public_setting_detail__creator_publicstatus_publicobject_isdir_status",

"ismultikey": true,

"direction": "forward",

"indexbounds": }}

},"rejectedplans": [ ]}}

},},

,"createtime": }}

],"ok": 1,

"$glestats":

}

記一次Innodb慢查詢分析過程

結論區分度低的索引到底會帶來哪方面的影響?資料量約700w create table order orderid varchar 32 not null comment 訂單編號 type char 1 default 0 comment 訂單型別 0 流量訂單,1 話費訂單 caller varc...

記一次慢查詢引發的事故

首先,測試環境上線新版本,並且通過黑盒測試以及功能測試。然後,我們就上線了新的版本。但是在執行3天後,整個伺服器大部分介面都失效了,基本上都是timeout。檢查伺服器情況 cpu基本上佔滿了。接著查了資料庫狀態,通過mysql命令show processlist 存在大量的waiting for ...

記一次sql查詢

效果圖 要查詢出如上圖的效果 知識點.1.多表巢狀查詢.2.輸出查詢結果,group concat函式 3.關聯查詢 select t1.學校,case when t1.年級 2017 then 1年級 when t1.年級 2016 then 2年級 when t1.年級 2015 then 3年...