关于mongodb慢查询

来源:互联网 时间:1970-01-01

1. 开启慢查询

 > db.setProfilingLevel(2); {"was" : 0 , "ok" : 1} 

上面斜体的级别可以取0,1,2 三个值,他们表示的意义如下:
0 – 不开启
1 – 记录慢命令 (默认为>100ms)
2 – 记录所有命令

db.setProfilingLevel( 1 , 10 );

记录大于10ms的

1.2 启动时的设定方式

mongod --profile=1 --slowms=15

2 检查状态

 db.getProfilingStatus();
/* 0 */{ "was" : 2, "slowms" : 10}
db.getProfilingLevel();
2

3 分析慢查询

输入命令

db.system.profile.find( { millis : { $gt : 5 } } ).pretty();

返回

/* 0 */{ "op" : "update", "ns" : "game_rpg.achieve", "query" : { "user_id" : "DDF7CD313E1F7468EC4D4772C649C999", "current_id" : 1 }, "updateobj" : { "$set" : { "progress" : 3, "is_complete" : false, "is_reward" : false } }, "nscanned" : 8410, "nupdated" : 1, "fastmod" : true, "keyUpdates" : 0, "numYield" : 0, "lockStats" : { "timeLockedMicros" : { "r" : NumberLong(0), "w" : NumberLong(6119) }, "timeAcquiringMicros" : { "r" : NumberLong(0), "w" : NumberLong(10) } }, "millis" : 6, "ts" : ISODate("2015-10-26T17:17:01.666+08:00"), "client" : "115.28.176.134", "allUsers" : [], "user" : ""}

ts:时间戳
op: 操作类型
ns:执行操作的对象集合
millis:操作所花时间,毫秒
client: 执行操作的客户端
user: 执行操作的mongodb连接用户



相关阅读:
Top