亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MongoDB > 正文

MongoDB如何查詢耗時記錄的方法詳解

2020-03-14 12:51:46
字體:
來源:轉載
供稿:網友

準備

在此之前,我們先在我們的數據庫中插入10萬條數據。數據的格式是這樣的:

{ "name":"your name", "age":22, "gender":"male", "grade":2}

explain

explain方法是用來查看db.collecion.find()的一些查詢信息的。例如:

db.collectionName.find().explain()

explain方法有個可選的參數verbose,是個字符串,他表示的是verbose的模式。一共分為3種模式:

queryPlanner:默認參數,詳細說明查詢優化器選擇的計劃并列出被拒絕的計劃。例如:

db.students.find({grade:1}).explain()

mongodb,查詢耗時,查詢記錄,查詢

executionStats:MongoDB運行查詢優化器選擇獲勝的計劃,執行計劃,完成并返回成功,統計描述的勝利計劃的執行。例如:

db.students.find({grade:1}).explain("executionStats")

mongodb,查詢耗時,查詢記錄,查詢

allPlansExecution:MongoDB返回描述獲獎計劃的執行以及對其他候選人統計計劃選擇方案時捕獲的統計。
我們的目的是要記錄執行find方法的耗時時間,所以用executionStats模式就可以了。

返回的結果也是只關注executionStats就可以了,如下圖:

mongodb,查詢耗時,查詢記錄,查詢

  1. nReturned:表示該查詢條件下返回的文檔數量。
  2. executionTimeMills:表示執行時間,單位毫秒
  3. totalDocsExamined:表示該集合總共文檔數。

其他的屬性在這里就不多說了,記錄耗時我們只取executionTimeMills.

Profiling

上面提到的方法好像是只適用find方法,對于一些聚合查詢之類的查詢方法就無法統計耗時時間了。這里再介紹一個profiling方法記錄查詢耗時時間。

開啟 Profiling 功能

有兩種方式可以控制 Profiling 的開關和級別,第一種是直接在啟動參數里直接進行設置。

  • 啟動MongoDB時加上–profile=級別 即可。
  • 也可以在客戶端調用db.setProfilingLevel(級別)命令來實時配置??梢酝ㄟ^db.getProfilingLevel()命令來獲取當前的Profile級別。

例如:

db.setProfilingLevel(2)db.getProfilingLevel()

mongodb,查詢耗時,查詢記錄,查詢

Profiling一共分為3個級別:

  • 0 - 不開啟。
  • 1 - 記錄慢命令 (默認為>100ms)
  • 3 - 記錄所有命令

Profile 記錄在級別1時會記錄慢命令,那么這個慢的定義是什么?上面我們說到其默認為100ms,當然有默認就有設置,其設置方法和級別一樣有兩種,一種是通過添 加–slowms啟動參數配置。第二種是調用db.setProfilingLevel時加上第二個參數:

db.setProfilingLevel( level , slowms)db.setProfilingLevel( 1 , 10 );

查詢 Profiling 記錄

開啟profiling功能后,系統會把相關命令詳細信息記錄到當前數據庫的system.profile集合里。查詢方法也是跟普通的集合查詢一樣。

db.system.profile.find()

mongodb,查詢耗時,查詢記錄,查詢

其中,mills就是命令耗時記錄。

由于我們設置的級別是2,所以所有命令都有記錄,現在我們把他改為級別1,且只記錄耗時20毫秒以上的記錄:

 db.setProfilingLevel( 1 , 20)

mongodb,查詢耗時,查詢記錄,查詢

然后我們再執行一下聚合查詢,查看下耗時時間:

db.students.aggregate( {$group:{_id:"$grade",avgAge:{$avg:"$age"}}} )

mongodb,查詢耗時,查詢記錄,查詢

db.system.profile.find().pretty()

mongodb,查詢耗時,查詢記錄,查詢

可以看出,我們的這聚合查詢耗時70毫秒。

profile 部分字段解釋

  • op:操作類型
  • ns:被查的集合
  • commond:命令的內容
  • docsExamined:掃描文檔數
  • nreturned:返回記錄數
  • millis:耗時時間,單位毫秒
  • ts:命令執行時間
  • responseLength:返回內容長度

下面介紹幾個常用的查詢命令:

列出執行時間長于某一限度(例如:20ms)的 Profile 記錄.

db.system.profile.find({millis:{$gt:50}})

mongodb,查詢耗時,查詢記錄,查詢

查看最新的 3條Profile 記錄:

db.system.profile.find().sort({$natural:-1}).limit(3)

mongodb,查詢耗時,查詢記錄,查詢

查看關于某個collection的相關慢查詢操作:

db.system.profile.find({ns:'mydb.students'})

MongoDB 查詢優化

  docsExamined(掃描的記錄數)遠大于nreturned(返回結果的記錄數)的話,那么我們就要考慮通過加索引來優化記錄定位了。

  responseLength 如果過大,那么說明我們返回的結果集太大了,這時請查看find函數的第二個參數是否只寫上了你需要的屬性名。(類似 于MySQL中不要總是select)

  對于創建索引的建議是:如果很少讀,那么盡量不要添加索引,因為索引越多,寫操作會越慢。如果讀量很大,那么創建索引還是比較劃算的。

Profiler 的效率

  Profiling 功能肯定是會影響效率的,但是不太嚴重,原因是他使用的是system.profile 來記錄,而system.profile 是一個capped collection 這種collection 在操作上有一些限制和特點,但是效率更高。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到MongoDB頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩中文字幕亚洲| 神马久久久久久| 国产精品视频久久久| 国产精品欧美在线| 欧美日韩加勒比精品一区| 成人一区二区电影| 日韩欧美一区二区三区久久| 国产精品高精视频免费| 成人黄色av网| 久久最新资源网| 欧美成人在线影院| 麻豆国产精品va在线观看不卡| 精品国产91久久久| 一本大道香蕉久在线播放29| 中文字幕亚洲综合| 久久露脸国产精品| 啪一啪鲁一鲁2019在线视频| 日韩成人激情视频| 夜夜狂射影院欧美极品| 日韩欧美国产高清91| 国产一区二区三区直播精品电影| 国产精品91久久| 欧美成人手机在线| xxxxxxxxx欧美| 高清日韩电视剧大全免费播放在线观看| 色伦专区97中文字幕| 国产视频精品久久久| 亚洲在线一区二区| 日本国产一区二区三区| 欧美日韩免费网站| 国模精品视频一区二区| 日韩欧美在线第一页| 国产午夜精品理论片a级探花| 亚洲成年人在线| 欧美国产高跟鞋裸体秀xxxhd| 97av在线视频免费播放| 中日韩午夜理伦电影免费| 国产精品mp4| 菠萝蜜影院一区二区免费| 亚洲欧美日韩在线一区| 日韩av一区二区在线| 成人国产亚洲精品a区天堂华泰| 欧美专区在线视频| 国产精品小说在线| 粉嫩av一区二区三区免费野| 91在线视频免费| 亚洲视频电影图片偷拍一区| 国产精品永久免费| 91极品女神在线| 91精品中文在线| 欧美福利在线观看| 成人国产精品一区| 日韩视频在线免费| 成人女保姆的销魂服务| 欧美不卡视频一区发布| 亚洲人成五月天| 这里只有精品视频在线| 久久福利视频导航| 最近日韩中文字幕中文| 91在线观看免费观看| 亚洲一区二区久久久| 久热精品视频在线观看| 久久九九全国免费精品观看| 97免费在线视频| 国产精品免费在线免费| 夜夜躁日日躁狠狠久久88av| 日韩av在线网址| 亚洲自拍偷拍网址| 中文日韩在线观看| 国产日韩精品在线| 欧美疯狂xxxx大交乱88av| 欧美午夜精品久久久久久久| 九九热这里只有精品免费看| 国产亚洲激情视频在线| 国产精品第10页| 国产欧美久久久久久| 中日韩美女免费视频网站在线观看| 日韩精品欧美激情| 欧美成人高清视频| 国产精品白丝jk喷水视频一区| 久久久久久91| 亚洲最大的av网站| 一区二区亚洲精品国产| 4k岛国日韩精品**专区| 欧美丝袜第一区| 国产精品视频精品视频| 欧美福利视频网站| 亚洲美女福利视频网站| 911国产网站尤物在线观看| 欧美性视频在线| 日韩成人xxxx| 亚洲欧美日韩在线一区| 亚洲精品日韩激情在线电影| 亚洲国产私拍精品国模在线观看| 久久久久久噜噜噜久久久精品| 久久久亚洲影院你懂的| 亚洲片在线资源| 97精品久久久| 久久人人爽国产| 2019中文在线观看| 国产精品久久久久久久久免费| 欧洲亚洲免费在线| 欧美日韩免费看| 亚洲国产精品电影在线观看| 国产精品成人在线| 中文国产成人精品| 日韩av一区在线观看| 韩国19禁主播vip福利视频| 国产人妖伪娘一区91| 国产美女直播视频一区| 久久精品青青大伊人av| 久久国产精品免费视频| 91禁外国网站| 伊人一区二区三区久久精品| 亚洲美女视频网| 久久久久日韩精品久久久男男| 日韩精品免费在线视频| 国产精品丝袜久久久久久不卡| 欧美国产日韩二区| 97国产在线观看| 欧美日韩国产成人在线观看| 亚洲欧美制服综合另类| 日韩免费黄色av| 亚洲韩国欧洲国产日产av| 精品久久久久国产| 久久综合免费视频| 久久综合久中文字幕青草| 国产日产久久高清欧美一区| 久久久国产精彩视频美女艺术照福利| 亚洲国产精品va在线观看黑人| 一级做a爰片久久毛片美女图片| 91精品综合视频| 亚洲黄色www网站| 亚洲电影免费观看高清| 2019中文字幕在线| 国产综合久久久久| 精品女同一区二区三区在线播放| 538国产精品视频一区二区| 亚洲国产精彩中文乱码av在线播放| 国产一区二区丝袜| 成人做爽爽免费视频| 国产精品96久久久久久| 国模精品视频一区二区三区| 欧美大成色www永久网站婷| 日韩最新中文字幕电影免费看| 国产精品亚洲网站| 精品视频在线播放免| 清纯唯美亚洲综合| 亚洲性av网站| 亚洲性视频网站| 欧美人交a欧美精品| 欧美激情va永久在线播放| 色琪琪综合男人的天堂aⅴ视频| 国产精品99导航| 91免费的视频在线播放| 亚洲成av人影院在线观看| 成人激情视频在线播放| 久久精品这里热有精品| 91在线色戒在线| 色无极亚洲影院| 国产精品视频xxx| 亚洲男人天天操| 91精品视频大全| 搡老女人一区二区三区视频tv|