Il y a deux choses ici que vous connaissez probablement.
- Expliquer les plans
- Journaux lents
Expliquer les plans
Voici quelques documents de base sur expliquer. Exécuter expliquer est aussi simple que db.foo.find(query).explain()
. (notez que cela exécute réellement la requête, donc si votre requête est lente, ce le sera aussi )
Pour comprendre la sortie, vous voudrez vérifier certains des documents sur les journaux lents ci-dessous. On vous donne essentiellement des détails sur "combien d'index ont été scannés", "combien sont trouvés", etc. Comme c'est le cas avec de tels détails de performance, l'interprétation dépend vraiment de vous. Lisez les documents ci-dessus et ci-dessous pour vous orienter dans la bonne direction.
Journaux lents
Par défaut, les logs lents sont actifs avec un seuil de 100ms. Voici un lien vers la documentation complète sur le profilage. Quelques points clés pour vous aider à démarrer :
Obtenir/Définir le profil :
db.setProfilingLevel(2); // 0 => none, 1 => slow, 2 => all
db.getProfilingLevel();
Voir les requêtes lentes :
db.system.profile.find()