当前位置: 首页 > news >正文

MongoDB慢查询临时开启方法讲解

1、首先连接数据库

mongosh "mongodb://localhost:27017"

2、选择目标数据库

show databases;#显示所有数据库
use lidb;#使用某数据库

3、查看当前分析级别

db.getProfilingStatus()

输出

{ was: 0, slowms: 100, sampleRate: 1, ok: 1 }
#was=0表示关闭;was=1表示开启

4、开启慢查询日志(临时,重启失效)

#方法一
db.setProfilingLevel(1, { slowms: 100 })  // 记录超过100ms的操作
#方法二
db.setProfilingLevel(1, {slowms: 100,filter: { op: "query" }  // 只记录查询操作
})

再执行如下命令查看状态:

db.getProfilingStatus()

输出

{ was: 1, slowms: 100, sampleRate: 1, ok: 1 }

表示设置成功

5、查看慢查询记录

#查询超过100ms的慢日志
db.system.profile.find({millis: {$gt: 100}})
// 查看最近的慢查询
db.system.profile.find().sort({ ts: -1 }).limit(5).pretty()
// 分析特定慢查询
db.system.profile.find({millis: { $gt: 200 },  // 超过200ms的操作op: "query"            // 只查询操作
}).pretty()

6、不同数据库不同设置

// 设置db1
use db1
db.setProfilingLevel(1, { slowms: 50 })// 设置db2
use db2
db.setProfilingLevel(1, { slowms: 200 })

7、修改采样率不改变级别

// 保持当前级别,只修改采样率
db.setProfilingLevel(1, { sampleRate: 0.3 })

8、修改慢查询阈值(不改变级别)

db.adminCommand({ profile: 0,  // 0=保持当前级别slowms: 30   // 新阈值
})

9、全局设置(影响所有数据库)

db.adminCommand({ setParameter: 1, slowMS: 50 
})

10、生产环境推荐配置

db.setProfilingLevel(1, {slowms: 50,sampleRate: 0.8
})

11、定期清理分析数据

// 清空分析数据
db.system.profile.drop()// 重建集合
db.createCollection("system.profile", {capped: true,size: 100 * 1024 * 1024  // 100MB
})

12、永久配置

# mongod.conf 添加
operationProfiling:mode: slowOpslowOpThresholdMs: 100slowOpSampleRate: 1.0

13、直接查看日志文件

# 查看慢查询日志
tail -f /usr/local/mongodb/logs/log.txt | grep "slow query"# 过滤耗时超过100ms的操作
grep "ms" /usr/local/mongodb/logs/log.txt | awk -F 'ms' '{if ($1 > 100) print $0}'

相关文章:

  • MongoDB检查慢查询db.system.profile.find 分析各参数的作用
  • web3-基于贝尔曼福特算法(Bellman-Ford )与 SMT 的 Web3 DeFi 套利策略研究
  • 精益数据分析(94/126):30/10/10用户参与法则与定价策略的科学制定
  • MADlib —— 基于 SQL 的数据挖掘解决方案(4)—— 数据类型之矩阵
  • 撰写脚本,通过发布/joint_states话题改变机器人在Rviz中的关节角度
  • Jenkins 工作流程
  • Linux配置yum 时间同步服务 关闭防火墙 关闭ESlinux
  • vue3+TS+eslint9配置
  • 如何把本地服务器变成公网服务器?内网ip网址转换到外网连接访问
  • 【 *p取出内容 a得到地址】
  • vite配置@别名,以及如何让IDE智能提示路经
  • 媒体新闻发稿:选择适合自己的媒体
  • NVIDIA Dynamo:数据中心规模的分布式推理服务框架深度解析
  • 国芯思辰| AD7894的优质替代方案:SC1424模数转换器在分布式控制系统中的应用优势
  • 分布式Session处理的五大主流方案解析
  • 使用docker 安装Redis 带配置文件(x86和arm)版本
  • 服务器健康摩尔斯电码:深度解读S0-S5状态指示灯
  • 二分算法
  • LabVIEW实时系统数据监控与本地存储
  • camera功能真的那么难用吗
  • 建设手机网站的方案/网页设计可以自学吗
  • 做网站便宜还是app便宜/网页自动点击软件
  • 哪个网站建设好/做推广的软件有哪些
  • 如何建设网站视频/网站seo运营
  • ctcms做的比较好的网站/盘古百晋广告营销是干嘛
  • 做网站开发团队/百度搜索引擎网址格式