Mongo报错: "Overflow sort stage bu

2019-07-17  本文已影响0人  宇宙有只AGI

报错内容

类似 Overflow sort stage buffered data usage of 33557144 bytes exceeds internal limit of 33554432 bytes

报错场景

通过mongoexport --sort导出数据/其他场景

原因分析

文档大小超过了32MB。排序时会把数据都提到内存中, Mongo默认in-memory sort是32MB,所以会报这个错。

解决方案

1、添加索引

语法:db.collection.createIndex(keys, options)

注:语法中 Key 值为要创建的索引字段,1 为指定按升序创建索引,降序 -1。

例子:db.col.createIndex({"title":1})

详见 MongoDB 索引 | 菜鸟教程

2、查看、修改 sort 默认的 32MB(3.0以后版本可用)

> use admin

switched to db admin

> db.runCommand( { getParameter : 1, "internalQueryExecMaxBlockingSortBytes" : 1 } )

{ "internalQueryExecMaxBlockingSortBytes" : 33554432, "ok" : 1 }

>  db.adminCommand({setParameter: 1, internalQueryExecMaxBlockingSortBytes:50151432})

{ "was" : 33554432, "ok" : 1 }

注:50151432为设置的新内存(50M)

参考资料

MongoDB: 解决 Overflow sort stage buffered data 错误

mongodb: "Overflow sort stage buffered data usage of 33557904 bytes exceeds internal limit of 33554"

上一篇 下一篇

猜你喜欢

热点阅读