インデックス使用状況の測定
項目一覧
Get Index Access Information with $indexStats
Use the $indexStats
aggregation stage to get statistics
regarding the use of each index for a collection. For example, the
following aggregation operation returns statistics on the index use on
the orders
collection:
db.orders.aggregate( [ { $indexStats: { } } ] )
以下も参照してください。
Return Query Plan with explain()
Use the db.collection.explain()
or the
cursor.explain()
method in executionStats mode to return statistics about the
query process, including the index used, the number of documents
scanned, and the time the query takes to process in milliseconds.
Run db.collection.explain()
or the cursor.explain()
method in allPlansExecution
mode to view partial execution statistics collected during plan
selection.
以下も参照してください。
Control Index Use with hint()
To 力 MongoDB to use a particular index for a
db.collection.find()
operation, specify the index with the
hint()
method. Append the hint()
method to the find()
method. Consider the
following example:
db.people.find( { name: "John Doe", zipcode: { $gt: "63000" } } ).hint( { zipcode: 1 } )
To view the execution statistics for a specific index, append to the
db.collection.find()
the hint()
method
followed by cursor.explain()
, e.g.:
db.people.find( { name: "John Doe", zipcode: { $gt: "63000" } } ).hint( { zipcode: 1 } ).explain("executionStats")
Or, append hint()
method to
db.collection.explain().find()
:
db.people.explain("executionStats").find( { name: "John Doe", zipcode: { $gt: "63000" } } ).hint( { zipcode: 1 } )
Specify the $natural
operator to the hint()
method to prevent MongoDB from using any index:
db.people.find( { name: "John Doe", zipcode: { $gt: "63000" } } ).hint( { $natural: 1 } )
Index Metrics
In addition to the $indexStats
aggregation stage, MongoDB
provides various index statistics that you may want to consider when
analyzing index use for your database:
In the output of
serverStatus
:In the output of
collStats
:In the output of
dbStats
: