DBAtlas · Atlas de operações de banco de dados

292: QueryExceededMemoryLimitNoDiskUseAllowed (error code 292)

MongoDB

O que significa?

Uma consulta ou estágio de agregação excedeu o limite de memória permitido (padrão 100 MB) e falhou porque a gravação em disco não era permitida. Geralmente visto em estágios de sort ou group.

Por que acontece?

Ordenação em memória sobre grandes volumes de dados sem índice, estágios de agregação $group/$sort grandes, conjuntos de resultados intermediários muito grandes, a configuração allowDiskUse:false.

Como resolver

Permita o uso de disco (spill) na agregação com a opção allowDiskUse:true: db.collection.aggregate(pipeline, {allowDiskUse:true}). Reduza o uso de memória indexando os campos ordenados. Filtre o pipeline cedo com $match para reduzir os dados processados. Pagine os resultados se necessário. No MongoDB 6.0+, o uso de disco é habilitado por padrão na maioria dos casos.

Abrir no DBAtlas →

Mais entradas deste banco