MongoDB提供了mongoexport工具,可以把一个collection导出成json格式或csv格式的文件

 

原以为,这个工具会像mysql中的select into out file那样,导出比较方便

 

没想到,测试之后,结果很郁闷

 

测试环境如下:

 

Linux 2.6.18-128.el5 x86_64

 

8G内存,2个4核cpu

 

mongodb中6000多万条数据,data和共占用40G空间

 

在一个建立索引的字段上,条件执行mongoexport后,似乎它并没有用到索引特性

 

导出花费的时间很长,而且占用的cpu和内存巨高,尤其是内存,最高时达到了7.6G

 

把我的心整的一闪一闪的,别把服务器给整成内存溢出了

 

还好,最好结果还是出来了,不过Mongod占的内存空间却一直没有释放

 

一直维持在7.6G左右,无奈,只好重启mongod了...

 

所用的命令如下:

 


折叠复制代码





  1. mongoexport -h 127.0.0.1:27017 -d mail_addr -c user_addr -u addr -p 'test' -q {'uid':'aaaaaa@sohu.com'}


 

显然,mongoexport没用使用索引,因为uid我建立的有索引

 

直接用mongo的client执行,结果返回很快

 


折叠复制代码





  1. db.user_addr.find({'uid':'aaaaaa@sohu.com'})


 

不知道是我命令用的有问题,还是说是mongoexport实现的有问题?