Ci sono due cose che probabilmente conoscerai.
- Spiega i piani
- Registri lenti
Spiega i piani
Ecco alcuni documenti di base su spiegare. L'esecuzione di spiegare è semplice come db.foo.find(query).explain()
. (nota che questo esegue effettivamente la query, quindi se la tua query è lenta lo sarà anche questo )
Per comprendere l'output, ti consigliamo di controllare alcuni dei documenti sui registri lenti di seguito. Fondamentalmente ti vengono forniti dettagli su "quanto indice è stato scansionato", "quanti sono stati trovati", ecc. Come nel caso di tali dettagli sulle prestazioni, l'interpretazione dipende davvero da te. Leggi i documenti sopra e sotto per indirizzarti nella giusta direzione.
Registri lenti
Per impostazione predefinita, i registri lenti sono attivi con una soglia di 100 ms. Ecco un link alla documentazione completa sulla profilazione. Un paio di punti chiave per iniziare:
Ottieni/Imposta profilatura:
db.setProfilingLevel(2); // 0 => none, 1 => slow, 2 => all
db.getProfilingLevel();
Vedi le query lente:
db.system.profile.find()