$explain
Nesta página
$explain
Observação
Descontinuado desde v3.0
A partir de v3.2, o operador
$explain
é preterido emmongosh
. Emmongosh
, usedb.collection.explain()
oucursor.explain()
em vez disso.O operador
$explain
fornece informações sobre o plano de query. Retorna um documento que descreve o processo e os índices usados para retornar a query. Isso pode fornecer informações úteis ao tentar otimizar uma query. Para detalhes sobre a saída, consulte cursor.explain().Você pode especificar o operador
$explain
em um dos seguintes formatos:db.collection.find()._addSpecial( "$explain", 1 ) db.collection.find( { $query: {}, $explain: 1 } ) Em
mongosh
, você também pode recuperar informações do plano de query por meio do métodoexplain()
:db.collection.find().explain()
Comportamento
$explain
executa a consulta real para determinar o resultado. Embora haja algumas diferenças entre executar a query com $explain
e executar sem, geralmente, o desempenho será semelhante entre os dois. Portanto, se a query for lenta, a operação $explain
também será lenta.
Além disso, a operação $explain
reavalia um conjunto de planos de query candidatos, o que pode fazer com que a operação $explain
tenha um desempenho diferente de uma query normal. Como resultado, essas operações geralmente fornecem uma descrição precisa de como o MongoDB executaria a query, mas não refletem a duração dessas queries.
Dica
Veja também:
Página Desempenho do MongoDB para informações sobre estratégias de otimização.
Tutorial do analisador de banco de dados para obter informações sobre o perfil do banco de dados.