麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > MongoDB > 正文

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

2020-10-29 18:45:09
字體:
來源:轉載
供稿:網友

準備

在此之前,我們先在我們的數據庫中插入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()

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

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


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

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


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

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

Profiling

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

開啟 Profiling 功能

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