一个多月了,我与mongoDB的战争。直到我输了=] ......
Battle 1. Battle 2. 而现在是一个新问题。再一次,没有足够的记忆。
最初,这是通过简单地以VPS的速率增加内存来解决的。然后journal = false。但是现在我已经达到了计划的最高点并继续增加内存是不可能的。
我的基地缺少4 GB的内存。 我该如何为项目选择一个数据库,没有人写过有那么多的mongoDB内存。 mongoDB中有大约1000万条记录缺少4 GB的内存,当我的MySQL数据库容量为1000万时,容易处理1.4 GB的内存。
我理解的问题是,大量的索引字段。但由于我无法分别登录数据库,因此无法将其删除。他们在发展的早期阶段需要我,现在他们对我来说并不重要。
请告诉我,我可以以某种方式删除它们吗? 有一个转储数据库完全是整个文件夹数据库/ data / db 在具有4 GB内存数据库的PC上,无法在4GB相同的VPS上启动。 作为替代方案,我认为在某个VPS / VDS上测试一段时间来运行mongo并删除密钥。
您是否知道拥有测试期和6 GB内存的虚拟主机?
或者如果有替代方案,你能说出什么吗?
答案 0 :(得分:1)
这些问题与数据集的大小无关。 MongoDB使用内存映射文件作为其存储引擎。因此,它会在可能的情况下开始将热数据页面交换到内存中,并且它会相当积极地(或更准确地说,操作系统内存管理确实如此)。
基本上它使用尽可能多的内存,并且你可以做很少的事情来避免它。如果有空间,所有在操作期间访问的数据页(无论是实际数据或索引)都将被交换到内存中。
顺便说一下,互联网和mongodb.org上有很多这方面的参考资料。说任何地方都没有提到它并不是真的。