Aquí hay dos cosas con las que probablemente esté familiarizado.
- Explicar planes
- Registros Slow
Explicar Planes
Here are some basic docs de explicar. Ejecutar Explain es tan simple como db.foo.find(query).explain()
. (tenga en cuenta que esto realmente ejecuta la consulta, por lo que si su consulta es lenta, esto también será)
Para comprender el resultado, querrá consultar algunos de los documentos en los registros lentos a continuación. Básicamente se le dan detalles sobre "cuánto se escaneó el índice", "cuántos se encuentran", etc. Como en el caso de los detalles de rendimiento, la interpretación depende de usted. Lea los documentos arriba y abajo para indicarle la dirección correcta.
Logs Slow
Por defecto, los registros lentos son activos con un umbral de 100 ms. Here's a link a la documentación completa sobre la creación de perfiles. Un par de puntos clave para empezar:
Obtener/Establecer perfiles:
db.setProfilingLevel(2); // 0 => none, 1 => slow, 2 => all
db.getProfilingLevel();
Ver consultas lentas:
db.system.profile.find()
Solo para agregar después de unos años: ahora la "nueva" forma recomendada de usar explain es: db.foo.explain(). Find (query). Observe "explicar" antes de "buscar". Además, especifique explain (true) para obtener más detalles, como el número de documentos examinados: db.foo.explain (true) .find (query); Escriba db.foo.explain(). Help para enumerar las consultas en las que puede usar explain. – alexbt