关于mongodb慢查询

来源:互联网 发布:mac无法删除普通用户 编辑:程序博客网 时间:2024/04/28 14:06

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连接用户

0 0