MongoDB資料庫效能分析

2021-07-05 05:38:23 字數 1392 閱讀 9999

設定當前資料庫日誌級別:

db.setprofilinglevel(n);

引用

n:

0 - 關閉效能分析,測試環境可以開啟,生成環境關閉,對效能有很大影響

1 - 開啟慢查詢日誌,執行時間大於100毫秒的語句

2 - 開啟所有操作日誌

獲取當前資料庫日誌分析級別:

db.getprofilinglevel();

資料庫的日誌分析資料一般存放在當前資料庫的 system.profile 集合中

檢視當前庫下所有集合的分析資料

db.system.profile.find()

檢視某乙個集合的分析資料

db.system.profile.find()

檢視執行時間大於100毫秒的執行操作,並倒序排列,並取前5行

db.system.profile.find(}).sort().limit(5);

分析執行操作的效能引數:

query:   nreturned:0 bytes:20", "millis" : 0 }

nreturned:0 bytes:20", "millis" : 0 }

{ "ts" : "tue jun 01 2010 12:27:30 gmt+0800 (cst)", "info" : "query mosh.users ntoreturn:1000 

reslen:36 nscanned:1  

引數介紹:

引用

ts:操作執行時的時間戳

millis:執行操作所花的時間

info:

query:資料庫查詢操作,查詢字段資訊包括ntoreturn,query,nscanned,reslen,nreturned

ntoreturn:從查詢中返回客戶端指定的物件數

query:查詢操作資訊

nscanned:在執行查詢操作的時候掃瞄了多少物件

reslen:查詢結果的大小

nreturned:從查詢中返回的結果物件

update:資料庫更新操作,

insert:資料庫插入操作

getmore:大資料量查詢

查詢優化:

1、如果nscanned 比 nreturned 大很多時,說明資料庫掃瞄了很大物件才找到目標物件,因此需要為條件查

詢建立索引

2、當返回的結果集很大時即reslen值相當大時,會影響效能下降,在做find查詢時,需要新增第二個查詢引數

,只獲取需要顯示的字段

更新優化:

1、檢查nscanned欄位,如果字段非常大,資料庫需要掃瞄大量的物件才能查詢到並更新,如果更新頻率比較

大的話,建議建立索引

2、盡可能的使用快速的修改操作

MongoDB查詢效能分析

explain 方法能夠提供大量與查詢相關的資訊。對於速度比較慢的查詢來說,它是最重要的效能分析工具之一。通過檢視乙個查詢的explain 輸出資訊,可以知道查詢使用了哪個索引,以及是如何使用的。對於任意查詢,都可以在最後新增乙個explain 呼叫 與呼叫sort 或者limit 一樣,不過exp...

MongoDB 資料庫操作

1 插入記錄 使用資料庫 如果沒有該資料庫就會建立,有就進入該模式 use use my testdb 插入資料 db.user.insert db.user.insert 顯示資料庫 show dbs my mongodb是隱式建立的資料庫 顯示表 show collections user是隱式...

MongoDB 建立資料庫

mongodb 建立資料庫的語法格式如下 use database name如果資料庫不存在,則建立資料庫,否則切換到指定資料庫。以下例項我們建立了資料庫 runoob use runoob switched to db runoob db runoob 如果你想檢視所有資料庫,可以使用 show ...