explain()方法能夠提供大量與查詢相關的資訊。對於速度比較慢的查詢來說,它是最重要的效能分析工具之一。通過檢視乙個查詢的explain()輸出資訊,可以知道查詢使用了哪個索引,以及是如何使用的。對於任意查詢,都可以在最後新增乙個explain()呼叫(與呼叫sort()或者limit()一樣,不過explain()必須放在最後)。
最常見的explain()輸出有兩種型別:使用索引的查詢和沒有使用索引的查詢。其輸出的資訊可能如下:
「millis」表明了這個查詢的執行時間。數字越小,則說明這個查詢的效率越高。
「n」則表明了實際返回的文件數量。
「nscanned「描述了mongodb在執行這個查詢時搜尋了多少文件。
」cursor「本查詢返回值為」basiccursor「則說明該查詢未使用索引,所以才會搜尋了所有的文件。如返回」btreecursor「則表示查詢中使用了索引。
」ismultikey「用於說明是否使用了多鍵索引。
」nyield「指本次查詢暫停的次數。在查詢期間,如果有與入請求需要處理,為了讓寫入請求能夠順利執行,查詢會週期性的釋放它的鎖。
mongodb效能分析方法 explain
mongodb效能分析方法 explain 為了演示的效果,我們先來建立乙個有200萬個文件的記錄。我自己的電腦耗了15分鐘左右插入完成。如果你想插更多的文件也沒問題,只要有耐心等就可以了。mongodb 3.0之後,explain的返回與使用方法與之前版本有了很大的變化,介於3.0之後的優秀特色和...
mongodb查詢語句效率分析
安裝最新版的mongodb.安裝免費的圖形客戶端robo 3t 在資料庫local下建立乙個名為test的collection 建立索引db.test.createindex 準備一些資料 db.test.find explain 執行結果 winningplan indexname ab ismu...
MongoDB資料庫效能分析
設定當前資料庫日誌級別 db.setprofilinglevel n 引用n 0 關閉效能分析,測試環境可以開啟,生成環境關閉,對效能有很大影響 1 開啟慢查詢日誌,執行時間大於100毫秒的語句 2 開啟所有操作日誌 獲取當前資料庫日誌分析級別 db.getprofilinglevel 資料庫的日誌...