DBAtlas · 数据库运维图谱

292: QueryExceededMemoryLimitNoDiskUseAllowed(错误代码 292)

MongoDB

含义

查询或聚合阶段超出了允许的内存限制(默认 100 MB),并且由于不允许写入磁盘而失败。通常出现在 sort 或 group 阶段。

原因

对未建索引的大量数据进行内存排序、大型 $group/$sort 聚合阶段、非常大的中间结果集、allowDiskUse:false 设置。

解决方法

在聚合中使用 allowDiskUse:true 选项允许溢出到磁盘:db.collection.aggregate(pipeline, {allowDiskUse:true})。为排序字段建立索引以减少内存使用。在管道中尽早用 $match 过滤以减少处理的数据量。必要时对结果分页。在 MongoDB 6.0+ 中,大多数情况下默认启用磁盘使用。

在 DBAtlas 中打开 →

同一数据库的其他条目