最近由于项目需要,使用了MongoDB存储数据。坦率的说,挺让人失望的,当然,不排除对MongoDB不太熟悉的原因。但总的说来,感觉名不副实,想让大家喜欢并接受,MongoDB还有很长的路要走。
简单说一下碰到的问题:
1. 非常耗内存。貌似这点很多人都抱怨过。因为MongoDB采用的是内存映射文件的方式存数据,所以特别吃内存,更郁闷的是,没有办法控制。如果MongoDB运行在一台专门的机器上也就罢了,最多把内存占满嘛,如果和其它的服务运行在同一个机器上....哎....
2. 非常吃硬盘。这点特别不理解,20G的数据可能需要占用60G的硬盘空间。注意,这并不是多个replica,而是单个replica所需要的空间。实在不理解为什么需要这么多额外的空间,就算硬盘便宜也不是这么用的....
3. 诡异的丢失数据。碰到过一个情况,就是在测试机上对MongoDB做性能测试时,不小心将硬盘给写满了,然后还不断的向MongoDB写入数据,于是诡异的一幕发生了,MongoDB数据的记录数在下降...原因不明。就算是硬盘写满,最多也就是不增加数据,没道理还会减少啊...
?
总结,很多nosql的东东好处都被夸大了,如果想用,事先多做测试。