Docs Menu
Docs Home
/
MongoDBマニュアル
/ / /

現在の操作のパフォーマンスを評価する

項目一覧

  • データベースプロファイラーを使用してデータベースに対する操作を評価する
  • db.currentOp()を使用してmongod操作を評価する
  • explainを使用してクエリ パフォーマンスを評価する

次のセクションでは、運用パフォーマンスを評価するための手法について説明します。

MongoDB は、データベースに対する各操作のパフォーマンス特性を示すデータベースプロファイラーを提供します。 プロファイラー を使用して、低速で実行されているクエリまたは書き込み操作を見つけます。 この情報を使用して、たとえば、作成するインデックスを決定できます。

プロファイラー エントリと読み取り操作および書込み (write ) 操作の 診断ログ メッセージ(mongod/mongos ログ メッセージなど)には次のものが含まれます。

  • queryHash 同じクエリ形状を持つ低速クエリの特定に役立ちます。

  • planCacheKey 低速クエリのクエリプラン キャッシュに関する詳細なインサイトを提供します。

replica setのセカンダリ メンバーは、適用に低速操作しきい値よりも長い時間がかかるoplogをログに記録するようになりました。 これらの遅い oplog メッセージ:

プロファイラーは遅い oplog エントリをキャプチャしません。

詳細については、「データベースプロファイラ 」を参照してください。

db.currentOp()メソッドは、 mongodインスタンスで実行されている現在の操作を報告します。

cursor.explain()メソッドとdb.collection.explain()メソッドは、クエリや実行統計を満たすために選択されたインデックス MongoDB など、クエリ実行に関する情報を返します。 返される情報の量を制御するには、 queryPlannerモード、 executionStatsモード、またはallPlansExecutionモードでメソッドを実行します。

{ a: 1 }に一致するドキュメントのクエリでcursor.explain()を使用するには、 recordsという名前のコレクションで、 mongoshで次のような操作を使用します。

db.records.find( { a: 1 } ).explain("executionStats")

MongoDB 4.2 以降では、 explain の出力に次のものが含まれます。

詳細については、「結果の説明」、「 cursor.explain()db.collection.explain() 、「クエリ パフォーマンスの分析 」を参照してください。

戻る

クエリの最適化