更新$ unset命令会占用大集合中的所有ram

时间:2011-02-14 23:26:51

标签: mongodb unset

使用MongoDB,我正在尝试从包含约300万条记录的集合中删除一列。

db.Listing.update( {}, { $unset: { Longitude: 1 } }, false, true);

当我执行此命令时,服务器上的RAM继续上升,直到RAM耗尽,然后服务器被冲洗,需要进行物理重启。有没有更好的方法从大型集合中删除不会影响服务器的列?

1 个答案:

答案 0 :(得分:0)

我希望您的问题是系统OOM杀手。你应该确保你没有限制mongod的资源。请参阅:http://www.mongodb.org/display/DOCS/Checking+Server+Memory+Usage

http://prefetch.net/blog/index.php/2009/09/30/how-the-linux-oom-killer-works/

如果你正在使用virt。像openvz这样的系统你可能想要停止,或者调整过度提交功能。