您的位置:首页 > 数据库 > Mongodb

关于mongodb慢查询

2015-10-26 17:41 489 查看

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连接用户
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: