与 TokuMX 和 PostgreSQL 相比较使得 MongoDB 处于劣势。但它仍然是一款很好的产品,并且会继续改进来与这些替代产品竞争,然而目前来看它最多只能排在第三名。2015年MongoDB的改进和发展,咱们拭目以待。html
【编者按】Henrique Lobo Weissmann 是一位来自于巴西的软件开发者,他是 itexto 公司的联合创始人,这是一家咨询公司。Henrique 在博客上会谈不少数据库方面的内容,日前他撰文称:非关系式数据库MongoDB正逐渐变得可有可无,值得你们关注,特别是正在和打算使用 MongoDB 的开发者关注。数据库
如下为译文:
架构
我与MongoDB的关系可分为三个阶段。对于目前处于第三阶段的我来讲,这款产品彷佛变得可有可无了。很快你就会明白为何我这么说。框架
我与MongoDB的第一次接触十分神奇:一个poliglot持久性架构用它来处理部分系统,而框架的关系模型却不是很适合。然而它运行得十分漂亮:快速、易于安装和使用,而且运转良好。不得不说,MongoDB很适合应用于此类状况。工具
它的表现震惊了我:事实上,我主要的查询语言是JavaScript,这已经十分了不得。我从未奢望相似的东西能运行得如此出色。在那段时间里,我详细了解了这款产品以及如何管理它配给的文档模型。性能
也许这个阶段更好的名字应该是成熟。在这个阶段,我知道在什么状况下该使用MongoDB,更重要的是,何时不应使用MongoDB。这时,你会发现MongoDB是一款很好却须要谨慎使用的产品。它提供的文档模型强大到能帮你解决不少但却不是所有问题:实际上,只是至关多而已。spa
我是从本身和别人的失败上意识到了这个问题。不少人很是兴奋的想要把世界简化成一个模式,因而MongoDB就能够成为全部问题最完美的解决方法。但每当这些时刻,一些不符合想象却真实存在的事实就会砸到你脸上证实你的想法是错误的:orm
关系模型并无它们表现的那么糟糕。事实上,这种模式目前十分流行,并且在将来很长一段时间内它的地位都不会改变,究其缘由:它管用。而且与NoSQL相反,咱们手里有各类适用于此模式的好的或者坏的的实践方法。htm
ACID事务。MongoDB有一点恼人的地方:不能建立一个事务处理多个文档。因而问题来了:多数状况下,你必须同时进行多文档处理。事务
在你知道你的系统须要什么以前,全部以上谈到的强大性能,都和你关系不大。
在这个阶段,全部的激动人心和相见恨晚都消失了,这是全部人都会有的。这时,你会知道这款工具能够作什么以及不能作什么。这是最好的阶段。
如今MongoDB对于我来讲已经变得可有可无了。固然不是指文档模型,而是产品。有一天早上我醒来,忽然意识到我再也不须要MongoDB了,由于对于个人项目来讲,其替代品更具吸引力。它们是分批来的。
第一波:TokuMX
TokuMX是MongoDB的一个分支,我喜欢称之为“MongoDB迷人的双胞胎兄弟”。它与MongoDB使用一样的通讯协议,采用基本相同的命令,并可与MongoDB 100%兼容。但它具备一些MongoDB没有的强大优点:
能够进行多文档ACID处理。
快于MongoDB(快50倍速)。
存储消耗比MongoDB少90%。
与MongoDB 100%兼容。全部你须要作的就是将MongoDB实例更换成TokuMX,而后转移数据(这是至关容易的),这样你就大功告成了。
是的,与MongoDB同样,它也是开源的,并且有运行很是好的免费版本。固然,它也不是彻底无懈可击。它有两个局限:
没有Windows发布(Distribution )。
目前Java库还不能提供MongoDB ACID执行的本地支持。它可使用,但仍须要一些样板代码。
TokuMX第一次让我意识到MongoDB对我来讲彷佛可有可无。固然,这可能只是暂时的:在往后版本发布后,MongoDB仍有可能击败TokuMX。可是,也只能寄但愿于往后版本。目前为止,它作不到。
第二波:PostgreSQL
若是说TokuMX让我以为MongoDB可有可无,那么PostgreSQL 9.2则强化了这一印象。自9.2版本,PosetgreSQL开始对JSON和JSONB数据类型提供支持。这是一个有意思的解决方案,由于它,我能够获得关系模型中具备文档灵活性的好的部分。而全部这一切都基于一样的产品。太好了!
可是MongoDB曾比PostgreSQL的具备更高性能。我说“曾”是由于PostgreSQL 9.4版本使其变成了历史:最近的基准显示,PostgreSQL在处理JSON数据类型上比MongoDB更快。我没有想要比较PostgreSQL和TokuMX,但鉴于二者如今都比MongoDB拥有更好的性能,我想你们已经清楚个人观点了。
结论
与 TokuMX 和 PostgreSQL 相比较使得 MongoDB 处于劣势。但它仍然是一款很好的产品,并且会继续改进来与这些替代产品竞争,然而目前来看它最多只能排在第三名。不过资本市场对 MongoDB 很是承认,最新消息显示,2015年MongoDB获8000万美圆融资,估值超过15亿美圆。期待MongoDB的改进和发展。