rmdir.cn

db.setProfilingLevel()

慢查询分析与性能诊断

语法

db.setProfilingLevel(<level>, <slowms>)

说明

MongoDB 内置的 Profiler 可以记录慢查询,用于性能诊断和优化。0=关闭,1=仅记录慢查询(>slowms),2=记录所有操作。数据存入 system.profile 集合。

参数

  • level必填

    0=关闭, 1=慢查询, 2=全部操作

  • slowms

    慢查询阈值(毫秒),默认 100ms

  • sampleRate

    采样率 0-1,仅记录部分慢查询

示例

开启慢查询记录

记录超过 50ms 的查询

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

查看当前配置

查看 profiling 状态和设置

db.getProfilingStatus()

查看慢查询日志

查询最近的慢操作记录

db.system.profile.find({ millis: { $gt: 100 } }).sort({ ts: -1 }).limit(10)

关闭 profiling

停止记录以降低开销

db.setProfilingLevel(0)