mongodb数据库是一个基于内存映射去完成存取操作的数据库,它能够将执行的数据放在内存中来读取,这样可以加快执行速度。而这种依赖内存的执行方式也会有内存不足的问题,下文会来讲解一下mongodb数据库出现内存不足问题的原因和解决方法,往下看看吧。
一、问题原因
当mongodb数据库group语句来将不同的数据分组查询的时候,实际上的结果会保存在一个临时的文档之中,而文档就是mongodb保存数据的基础格式。但是mongodb文档内的数据是以BSON格式查询出来并且保存的,所以它有16M的文件大小上限,当超过了这个上限的时候就会出现内存不足的错误提示。
二、解决方法
既然是在查询后保存数据出现了内存不足的问题,那么只需要将文件大小的限制给解除掉,然后mongodb数据库在聚集查询时就能够使用系统缓存来作为文件数据的中转,然后将超出内存的数据写入到临时文件中保存起来即可。
临时文件在当前的mongodb数据库关闭后就会马上的销毁掉,而要在聚集查询内启用临时文件就需要在查询语句的末尾加上allowDiskUse这么一个属性,它的意思就是运行查询超过内存上限时打开磁盘并将数据保存在临时文件之中,详细的语句如下所示:
db.flowlog.aggregate([{$group:{_id:"$_id"}}], {allowDiskUse: true})
以上就是关于“MongoDB数据库内存不足怎么办?MongoDB为什么会内存不足”的全部内容了,希望对你有所帮助。
更多python相关文章请访问分类:python
【版权声明】本文图文出自大盘站@dapan.cc,转载请注明出处!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。