使用 MongoDB,我试图从包含约 300 万条记录的集合中删除一列。
db.Listing.update( {}, { $unset: { Longitude: 1 } }, false, true);
当我执行这个命令时,服务器上的 RAM 会继续增加,直到它用完 RAM,然后服务器被冲洗,需要重新启动。有没有更好的方法来从不会对服务器进行软管处理的大型集合中删除列?
我希望您的问题是系统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 这样的系统,你可能想要停止,或者调整过度提交功能。