千家信息网

mongodb 慢查询日志使用参考

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,mongodb的Profiling功能->慢查询功能Profiling 把收集到的信息写入到system.profile集合中,system.profile集合是一个capped collection
千家信息网最后更新 2026年11月01日mongodb 慢查询日志使用参考

mongodb的Profiling功能->慢查询功能

Profiling 把收集到的信息写入到system.profile集合中,system.profile集合是一个capped collection。

1.定位mongodb慢查询语句方法:
开启Profiling功能,通过定位慢查询日志,找到执行比较慢的语句,然后进行优化,思路如下:
a.查询慢查询日志(system.profile)找到超过定义时间的慢查询语句;
b.explain()查看执行计划,可以参考如下文章:https://blog.51cto.com/1937519/2301699
c.确定语句慢的原因,如缺少索引,业务批量问题等,思路与传统的rdbms的sql优化等同;

2.开启慢查询:
2.1:Profiling级别说明:
a.0:关闭,不收集任何数据。
b.1:收集慢查询数据,默认是100毫秒。
c.2:收集所有数据

2.2:数据库慢查询配置(注意写入配置文件,重启后生效):
a.查看状态:级别和时间
repsetzhou:PRIMARY> db.getProfilingStatus()
{ "was" : 1, "slowms" : 200 }

b.查看级别
repsetzhou:PRIMARY> db.getProfilingLevel()
1

c.设置级别
repsetzhou:PRIMARY> db.setProfilingLevel(2)
{ "was" : 1, "slowms" : 200, "ok" : 1 }

d.确认设置级别:
repsetzhou:PRIMARY> db.getProfilingLevel()
2

e.说明:设置级别和时间(1000 相当于1s)
repsetzhou:PRIMARY> db.setProfilingLevel(1,1000) ###(包括级别、时间参数,时间是毫秒单位)
{ "was" : 2, "slowms" : 1000, "ok" : 1 }

2.3:在配置文件中开启慢查询:

operationProfiling:
slowOpThresholdMs: 200
mode: slowOp

3.关闭Profiling:
a.关闭:
repsetzhou:PRIMARY> db.setProfilingLevel(0)
{ "was" : 2, "slowms" : 1000, "ok" : 1 }
b.确认:
repsetzhou:PRIMARY> db.getProfilingStatus()
{ "was" : 0, "slowms" : 1000 }

4.修改system.profile的大小:

a.关闭Profiling:
repsetzhou:PRIMARY> db.setProfilingLevel(0)
{ "was" : 0, "slowms" : 200, "ok" : 1 }
b.删除system.profile集合:
repsetzhou:PRIMARY> db.system.profile.drop()
true
c.创建一个新的system.profile集合 - 10M:
repsetzhou:PRIMARY>db.createCollection( "system.profile", { capped: true, size:10000000 } )
{ "ok" : 1 }
d.重新开启Profiling:
repsetzhou:PRIMARY> db.setProfilingLevel(1)
{ "was" : 0, "slowms" : 200, "ok" : 1 }


5.1慢查询(system.profile)分析:

repsetzhou:PRIMARY> db.system.profile.find()

a.查询大于指定时间如500毫秒:

db.system.profile.find({"millis":{$gte:500}})

b.查询指定时间慢查询:

db.system.profile.find(
{
ts : {
$gt : new ISODate("2018-10-22T03:01:45.976Z"),
$lt : new ISODate("2018-10-22T03:01:48.976Z")
}
}
)

c.显示5最近的事件:

show profile

5.2:在mongodb的日志文件中同样记录慢查询日志,如果system.profile已经被覆盖,可以参考mongodb的后台日志。

查询 时间 级别 日志 a. 数据 语句 b. 功能 文件 配置 参考 思路 d. 定位 业务 事件 传统 信息 单位 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技制造互联网公司 凡科互联网科技 互联网科技大会 一五八零互联网科技 多迪互联网科技有限公司 随着互联网科技发展 茂名市互联网科技产业园 互联网金融科技公司干啥的 互联网大会黑科技排名 武汉健翔互联网络科技有限公司 电子科技大学互联网创业大赛 畅思互联网科技 互联网新科技动漫ppt素材 元气玛特互联网科技公司是外包吗 扫呗互联网科技有限公司 广东鹅鹅鹅互联网科技有限公司 云鲸互联网络科技有限公司 黑龙江互联网科技公司 广东猫王互联网科技有限公司电话 互联网高科技绘画 高科技与互联网 郑州华宇互联网科技 互联网 科技服务平台 湖北码尼互联网科技有限公司电话 特约风豹互联网科技为什么扣费 科技互联网的核心竞争力 互联网科技企业商标注意事项 广州三三互联网科技有限公司 马化腾互联网科技教学 广西泛欧互联网科技有限公司
0