温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

mongodb 之慢查询

发布时间:2020-06-28 18:54:06 来源:网络 阅读:1579 作者:dengwang123 栏目:MongoDB数据库


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" : "root@admin" }

 

 

键值解释:

op:操作类型。

ns:执行操作的对象集合

millis:操作所花时间,毫秒 

client:执行操作的客服端。

allUsers:执行操作的mongodb账号

ts:时间戳(操作的发生时间)

 

 

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI