DBAtlas · Atlas d'exploitation des bases de données

292: QueryExceededMemoryLimitNoDiskUseAllowed (code d'erreur 292)

MongoDB

Que signifie cette erreur ?

Une requête ou une étape d'agrégation a dépassé la limite de mémoire autorisée (100 MB par défaut) et a échoué, car l'écriture sur disque n'était pas autorisée. S'observe généralement dans les étapes de tri ou de regroupement.

Cause

Tri en mémoire sur de grandes données non indexées, grandes étapes d'agrégation $group/$sort, très grands jeux de résultats intermédiaires, paramètre allowDiskUse:false.

Comment la corriger

Autorisez le débordement sur disque dans l'agrégation avec l'option allowDiskUse:true : db.collection.aggregate(pipeline, {allowDiskUse:true}). Réduisez l'utilisation de la mémoire en indexant les champs triés. Filtrez tôt le pipeline avec $match pour réduire les données traitées. Paginez les résultats si nécessaire. Dans MongoDB 6.0+, l'utilisation du disque est activée par défaut dans la plupart des cas.

Ouvrir dans DBAtlas →

Autres entrées pour ce moteur