【发布时间】:2012-11-04 14:06:01
【问题描述】:
我正在尝试将 mysql 表迁移到 mongodb。我的表有 600 万个条目。我使用带有 morphia 的 java。当我保存大约 120 万时,我的内存几乎都被消耗掉了。
我读过 mongo 将数据存储在内存中,然后保存在磁盘中。是否可以发送诸如提交之类的内容来释放一些内存?
【问题讨论】:
-
mongodb使用了多少内存?我没有得到它不需要使用大量内存的印象。通常是根据需要缓存在内存中的数据和索引占用的内存最多。
-
我的电脑有 6gb,当我开始使用大约 1.5gb 的过程时。在 1,500,000 条记录后,使用的内存为 5,80 GB。我正在使用 Windows,此时操作系统弹出我说某些进程正在使用大量内存,必须关闭,否则数据将丢失。
-
coll 名称未压缩,因此使用 userdata.timestampuser 或 userdata.longnameforfield 之类的名称不是最佳选择。尝试更改名称 eq 时间戳使用 ts, user_id => ui 或 uid
-
这显然取决于文档结构。对 1KB 的字符串使用 20 个字符的名称不会有太大的不同。使用长名称来存储布尔值显然可以;-)。我仍然希望进行一些内部重新映射,这可以解决这个问题......
标签: java mongodb memory-management morphia