Há duas coisas aqui com as quais você provavelmente estará familiarizado.
- Explicar planos
- Registros lentos
Explicar planos
Aqui estão alguns documentos básicos sobre explicação. A execução de explicação é tão simples quanto
db.foo.find(query).explain()
. (observe que isso realmente executa a consulta, portanto, se sua consulta for lenta, isso também será ) Para entender a saída, você deve verificar alguns dos documentos nos logs lentos abaixo. Basicamente, você recebe detalhes sobre "quanto índice foi verificado", "quantos foram encontrados", etc. Como é o caso de tais detalhes de desempenho, a interpretação depende de você. Leia os documentos acima e abaixo para orientá-lo na direção certa.
Registros lentos
Por padrão, os logs lentos estão ativos com um limite de 100 ms. Aqui está um link para a documentação completa sobre criação de perfil. Alguns pontos-chave para você começar:
Obter/definir perfil:
db.setProfilingLevel(2); // 0 => none, 1 => slow, 2 => all
db.getProfilingLevel();
Veja consultas lentas:
db.system.profile.find()