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

インデックス使用状況の測定

項目一覧

  • インデックス のアクセス情報の取得 $indexStats
  • クエリプランを返す explain()
  • インデックスの使用の制御 hint()
  • インデックス メトリクス

コレクションの各インデックスの使用に関する統計を取得するには、 $indexStats 集計ステージを使用します。たとえば、次の集計操作は、orders コレクションのインデックス使用に関する統計を返します。

db.orders.aggregate( [ { $indexStats: { } } ] )

Tip

以下も参照してください。

使用されたインデックス、スキャンされたドキュメントの数、クエリの処理にかかる時間(ミリ秒単位)など、クエリ プロセスに関する統計を返すには、executionStats モードで db.collection.explain() メソッドまたは cursor.explain() メソッドを使用します。

プラン選択中に収集された部分的な実行統計を表示するには、allPlansExecution モードで db.collection.explain() メソッドまたは cursor.explain() メソッドを実行します。

Tip

以下も参照してください。

MongoDB が db.collection.find() 操作に特定のインデックスを使用するよう強制するには、hint() メソッドでインデックスを指定します。hint() メソッドを find() メソッドに追加します。次の例で考えてみます。

db.people.find(
{ name: "John Doe", zipcode: { $gt: "63000" } }
).hint( { zipcode: 1 } )

特定のインデックスの実行統計を表示するには、db.collection.find()hint() メソッドを追加し、その後に cursor.explain() を追加します。例:

db.people.find(
{ name: "John Doe", zipcode: { $gt: "63000" } }
).hint( { zipcode: 1 } ).explain("executionStats")

または、hint() メソッドを db.collection.explain().find() に追加します。

db.people.explain("executionStats").find(
{ name: "John Doe", zipcode: { $gt: "63000" } }
).hint( { zipcode: 1 } )

MongoDB がインデックスを使用しないようにするには、$natural 演算子を hint() メソッドに指定します。

db.people.find(
{ name: "John Doe", zipcode: { $gt: "63000" } }
).hint( { $natural: 1 } )

$indexStats 集計ステージに加えて、MongoDB は、データベースのインデックスの使用を分析する際に考慮する必要があるさまざまなインデックス統計を提供します。

戻る

管理