798天前2018-12-23 09:35:12 |    抢沙发  793 
mongodb是一个介于关系型数据库与非关系型数据库之间的一个库,用起来也是相当的不错,可存文档存json。但是当我们遇到mongodb数据库查询很慢的时候应该怎么办呢,mysql有慢查询日志那么mongodb呢?当然也有,下面请跟随静心一起来看看怎么开启mongodb数据库的慢查询吧。

mongodb

进入管理库

use admin
#查看当前状态
db.getProfilingLevel()
反馈:
{"was" : 0 , "slowms" : 100, "ok" : 1}
#开启慢查询
db.getProfilingLevel(1)
反馈:
{"was" : 1 , "slowms" : 100, "ok" : 1}
参数解释:
"was" : 1 表示当前状态 为1  既只记录超过slowms的记录
"slowms" : 100 表示当前的慢查询时间值为100毫秒
"ok" : 1 表示命令执行成功
值为0|1|2,分别代表意思:0代表关闭,1代表记录慢命令,2代表全部开启 就是所有的语句全部记录
查询: 可接条件
db.system.profile.find()
返回结果字段解释

ts:命令执行时间
info:命令的内容
query:代表查询
order.order: 代表查询的库与集合
reslen:返回的结果集大小,byte数
nscanned:扫描记录数量
nquery:后面是查询条件
nreturned:返回记录数及用时
millis:所花时间

如果发现时间比较长,那么就需要作优化。
比如nscanned数很大,或者接近记录总数,那么可能没有用到索引查询。
reslen很大,有可能返回没必要的字段。
nreturned很大,那么有可能查询的时候没有加限制。
mongo可以通过db.serverStatus()查看mongod的运行状态

发表评论

暂无评论

登录

忘记密码 ?

切换登录

注册

扫一扫二维码分享