MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Desempenho de agregação de pesquisa ruim


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

ForeignField Especifica o campo dos documentos na coleção from. $lookup executa uma correspondência de igualdade no ForeignField para o localField dos documentos de entrada. Se um documento na coleção from não contiver o ForeignField, o $lookup tratará o valor como nulo para fins de correspondência.

Isso será executado da mesma forma que qualquer outra consulta.

Se você não tiver um índice no campo _AccountId, ele fará uma consulta tablecan completa para cada um dos 10.000 posts. A maior parte do tempo será gasto nesse tablecan.
db.users.ensureIndex("_AccountId", 1) 

acelera o processo, fazendo 10.000 acertos de índice em vez de 10.000 varreduras de tabela.