標籤:mongodb db.setprofilinglevel
mongodb中慢查詢日誌
1.開啟查詢日誌.
(1)動態開啟,可以選擇性的對指定DB開啟慢查詢日誌,但伺服器重啟後慢查詢日誌又要人工手動開啟。
db.setProfilingLevel(1,300)
setProfilingLevel有兩個參數,第一參數表示慢查詢日誌開關(可使用的值為0,1,2
0:表示關閉慢查詢日誌,1:表示開啟慢查詢日誌,2:表示記錄所有資料庫中的查詢),
第二個參數為慢查詢閥值,單位是毫秒,預設情況下閥值為100ms。
(2).設定檔中開啟,永久生效。對所有的資料DB生效
在mongo的設定檔中加上一下兩個參數即可永久開啟慢查詢。
profile:表示慢查詢日誌開關.
slowms:慢查詢日誌閥值。
和setProfilingLevel中的兩個參數對應。
2.查看伺服器慢查詢日誌狀態
db.getProfilingStatus()
rs0:SECONDARY> db.getProfilingStatus();
{ "was" : 1, "slowms" : 100 }
db.getProfilingLevel()
rs0:SECONDARY> db.getProfilingLevel()
1
3.查看滿查詢日誌。
一般情況下,當開啟慢查詢日誌後會在每個db下面產生一個集合(system.profile).
這個集合裡面記錄了所有當前資料庫查詢時間超過閥值的查詢記錄。
rs0:PRIMARY> db.system.profile.find({ns:/^gow/}).limit(1)
{"op" : "update",
"ns" : "gow.broadcasts",
"query" : { "_id" : ObjectId("54b73af6bab3047b5593c456") },
"updateobj" : { "_id" : ObjectId("54b73af6bab3047b5593c456"), "content" : "各新石"},
"nscanned" : 0,
"nscannedObjects" : 0,
"nMatched" : 1,
"nModified" : 0,
"upsert" : true,
"keyUpdates" : 0,
"numYield" : 0,
"lockStats" : { "timeLockedMicros" : { "r" : NumberLong(0) , "w" : NumberLong(10) } },
"millis" : 157,
"execStats" : { },
"ts" : ISODate("2015-01-26T19:05:00.118Z"),
"client" : "10.136.3.117",
"allUsers" : [ { "user" : "root", "db" : "admin" } ], "user" : "[email protected]" }
索引值解釋:
op:操作類型。
ns:執行操作的對象集合
millis:操作所花時間,毫秒
client:執行操作的客服端。
allUsers:執行操作的mongodb帳號
ts:時間戳記(操作的發生時間)
本文出自 “SQLServer MySQL” 部落格,請務必保留此出處http://dwchaoyue.blog.51cto.com/2826417/1614281
mongodb 之慢查詢