Obtener información de acceso al índice con $indexStats
Usa el Etapa de agregación $indexStats para obtener estadísticas sobre el uso de cada índice para una colección. Por ejemplo, la siguiente operación de agregación devuelve estadísticas sobre el uso del índice en la colección orders:
db.orders.aggregate( [ { $indexStats: { } } ] )
Advertencia
$indexStats reporta las métricas de uso del índice en el campo de accesos solo para el nodo donde se ejecuta la consulta. Para obtener estadísticas de uso del índice más completas, ejecute $indexStats en cada nodo del clúster.
Tip
Devolver plan del query con explain()
Utiliza el método db.collection.explain() o cursor.explain() en modo executionStats para obtener estadísticas sobre el proceso de query, incluido el índice utilizado, el número de documentos escaneados y el tiempo que tarda en procesarse la query en milisegundos.
Ejecuta db.collection.explain() o el método cursor.explain() en modo allPlansExecution para visualizar estadísticas parciales de ejecución recogidas durante la selección del plan.
Tip
Controla el uso del índice con hint()
Para forzar a MongoDB a usar un índice en particular para una operación db.collection.find(), especifica el índice con el método hint(). Agregue el método hint() al método find(). Considere el siguiente ejemplo:
db.people.find( { name: "John Doe", zipcode: { $gt: "63000" } } ).hint( { zipcode: 1 } )
Para ver las estadísticas de ejecución de un índice específico, añada al db.collection.find() el método hint() seguido de cursor.explain(), por ejemplo:
db.people.find( { name: "John Doe", zipcode: { $gt: "63000" } } ).hint( { zipcode: 1 } ).explain("executionStats")
O bien, agregue el hint() método db.collection.explain().find() a:
db.people.explain("executionStats").find( { name: "John Doe", zipcode: { $gt: "63000" } } ).hint( { zipcode: 1 } )
Especifica el operador $natural en el método hint() para evitar que MongoDB use cualquier índice:
db.people.find( { name: "John Doe", zipcode: { $gt: "63000" } } ).hint( { $natural: 1 } )
Métricas del índice
Además de la $indexStats etapa de agregación, MongoDB proporciona varias estadísticas de índice que puede considerar al analizar el uso del índice para su base de datos:
En la salida
serverStatusde:En la salida
collStatsde:En la salida
dbStatsde: