当前位置: 首页 > 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}'

http://www.xdnf.cn/news/901639.html

相关文章:

  • elasticsearch基本操作笔记
  • 数据库优化秘籍:解锁性能提升的 “潘多拉魔盒”
  • vue3前端实现导出Excel功能
  • 【设计模式-5】设计模式的总结
  • golang入门
  • SSIM、PSNR、LPIPS、MUSIQ、NRQM、NIQE 六个图像质量评估指标
  • 程序代码篇---智能家居传感器
  • C++.OpenGL (5/64)变换(Transformation)
  • Prompt Engineering Notes
  • GIT(AI回答)
  • K8S认证|CKS题库+答案| 3. 默认网络策略
  • 【案例分享】如何借助JS UI组件库DHTMLX Suite构建高效物联网IIoT平台
  • 如何使用k8s安装redis呢
  • SOC-ESP32S3部分:31-ESP-LCD控制器库
  • Dynamics 365 Business Central Direct Banking Extention D365 BC ERP 银行接口扩展
  • CountDownLatch和CyclicBarrier
  • P-MySQL SQL优化案例,反观MySQL不死没有天理
  • 衡量嵌入向量的相似性的方法
  • 4D毫米波雷达产品推荐
  • 『React』Fragment的用法及简写形式
  • React 中 HTML 插入的全场景实践与安全指南
  • 【React】React 18 并发特性
  • 练习:对象数组 4
  • 51单片机——计分器
  • 华为×小鹏战略合作:破局智能驾驶深水区的商业逻辑深度解析
  • web框架(Django 与 FastAPI)
  • arduino开发遇见的问题(求助!!)
  • Java-IO流之打印流详解
  • 【免杀】C2免杀技术(十六)反沙箱/反调试
  • 前端开发面试题总结-JavaScript篇(一)