MongoDB优化器profile
MongoDB优化器profile一、查看当前是否开启profile功能
db.getProfilingLevel()
返回level等级,值为: 0,关闭profile;1,只抓取slow查询;2,抓取所有数据
二、启动profile
db.setProfilingLevel(level);
#level等级,值同上
level为1的时候,慢命令默认值为100ms,更改为db.setProfilingLevel(level,slowms)如db.setProfilingLevel(1,50)这样就更改为50毫秒
三、查看Profiling数据
可以直接在system.profile的collection上查看
db.systen.profile.find()
例如
> db.system.profile.find({millis:{$gt:500}})
返回结果各个字段的含义
ts:命令执行时间
info:命令的内容
query:代表查询
order.order: 代表查询的库与集合
reslen:返回的结果集大小,byte数
nscanned:扫描记录数量
nquery:后面是查询条件
nreturned:返回记录数及用时
millis:所花时间
如果发现时间比较长,那么就需要作优化
比如:
1、nscanned数很大,或者接近记录总数,那么可能没有用到索引查询。
2、reslen很大,有可能返回没必要的字段。
n3、returned很大,那么有可能查询的时候没有加限制。