MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Mauvaises performances d'agrégation de recherche

de https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/

champétranger Spécifie le champ des documents de la collection from. $lookup effectue une correspondance d'égalité sur le champ étranger au localField à partir des documents d'entrée. Si un document de la collection from ne contient pas le champ étranger, la recherche $ traite la valeur comme nulle à des fins de correspondance.

Cela sera effectué de la même manière que toute autre requête.

Si vous n'avez pas d'index sur le champ _AccountId, il effectuera une requête d'analyse de table complète pour chacun des 10 000 messages. La majeure partie du temps sera consacrée à ce balayage de table.

db.users.ensureIndex("_AccountId", 1) 

accélère le processus de sorte qu'il effectue 10 000 accès à l'index au lieu de 10 000 analyses de table.