ここには、よく知っていると思われることが2つあります。
- 計画を説明する
- 遅いログ
計画を説明する
ここに、explainに関するいくつかの基本的なドキュメントがあります。 Explainの実行は、db.foo.find(query).explain()
と同じくらい簡単です。 。 (これは実際にクエリを実行するため、クエリが遅い場合はこれも遅くなることに注意してください )
出力を理解するために、以下の遅いログのいくつかのドキュメントを確認することをお勧めします。基本的に、「スキャンされたインデックスの量」、「見つかったインデックスの数」などの詳細が提供されます。このようなパフォーマンスの詳細の場合と同様に、解釈は実際にはあなた次第です。上下のドキュメントを読んで、正しい方向を示してください。
遅いログ
デフォルトでは、低速ログは100msのしきい値でアクティブになっています。プロファイリングに関する完全なドキュメントへのリンクは次のとおりです。始めるためのいくつかの重要なポイント:
プロファイリングの取得/設定:
db.setProfilingLevel(2); // 0 => none, 1 => slow, 2 => all
db.getProfilingLevel();
遅いクエリを参照してください:
db.system.profile.find()