profile (データベースプロファイラ)

最終更新:2026-10-09

profile (データベースプロファイラ)

profile はデータベースプロファイラを切り替えます。レベル 0 はオフ、1 は遅い操作のみ記録(slowms 超)、2 はすべて記録します。記録された操作は system.profile に入り、ボトルネックの特定に役立ちます。mongosh には db.setProfilingLevel(1, { slowms: 200 }) などのヘルパーがあります。

カテゴリ監視と診断
MongoDB バージョン1.0+
例の言語mongosh(シェル)

📝 構文

db.runCommand({ profile: <level>, slowms: <ms> })
db.setProfilingLevel(1, { slowms: 200 })
db.getProfilingStatus()

⚙️ パラメータ

profileレベル: 0=オフ、1=遅い操作のみ、2=すべて
slowmsスロークエリのしきい値(ミリ秒)。レベル 1 で使用します。

戻り値:以前のレベル(was)、現在の slowms、および ok を返します

▶ 例

以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):

// profile: 低速操作ログを有効化
use shop
db.runCommand({ profile: 1, slowms: 200 })
db.system.profile.find({ millis: { $gte: 200 } }).sort({ ts: -1 }).limit(5)

出力:

{ was: 0, slowms: 100, sampleRate: 1, ok: 1 }
// このクエリは 200ms 以上かかった直近 5 件の操作を返す

📌 注意事項

さらなる実践ケースを近日公開予定。

📚 関連チュートリアル

❓ よくある質問

Qプロファイラのレベル 1 と 2 の違いは?
Aレベル 1 は slowms より遅い操作のみ、レベル 2 はすべての操作を記録します。
Qプロファイラのログはどこに保存されますか?
Asystem.profile コレクションに保存され、直接クエリできます。
Qプロファイラをオフにするには?
Adb.setProfilingLevel(0) または db.runCommand({ profile: 0 }) を実行します。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%