为什么会出现TokuMX呢?
查阅大量的资料和翻阅一些大牛的博客发现,MongoDB作为nosql派别的一个典型非关系型数据库其实存在许多缺陷不足之处。
然后肯定就会有有人跳出来,来做一个衍生的东西,心想着“我要把你的这些缺点都给改过来,然后做一个产品肯定赚钱”,其实不然,在你改正这些缺点的过程中,也可能发生别的新问题,而开发MongoDB的始祖们看到竞争者,也会对MongoDB做出相应的升级和改善。说了这么多,就是当我们选择使用的时候,要比较这两者,和我们的需求作比较,最后再决定用哪个。
开始比较:
1、带索引插入性能对比【Tokutek官方数据】
2、磁盘空间占用比较
TokuMX 18G,MongoDB 80G
3、内存使用比较
TokuMX,cacheSize设置为30G,开directio,内存使用完没有cache的。
MongoDB,内存使用完,实际在cache里面
4、CPU使用
TokuMX要高10%左右。
5、IO比较
MongoDB的IO稍高一些
6、稳定性比较
TokuMX进程crash掉的几率高过MongoDB
综上所诉:
你可能会觉得TokuMX碾压MongoDB,但是我依然会选择MongoDB,因为这几乎是TokuMX官方给的数据,可能有些夸大,而且我感觉我目前所需要的插入量还不会达到这种每秒十万级别及以上的。除此之外,查阅资料发现,TokuMX特性在于高写压力应用场景,而MongoDB本质上document oriented cache,特性在于高查询压力支持。
我相信在后面的版本迭代中,MongoDB一定会针对磁盘的占用、不支持事物、写效率进一步提高等方面有所提升,翻阅了MongoDB3.0以上的官方文档确实发现了这些改善。
对于个人而言,我是一个初次接触MongoDB的开发者,需要大量的文档和帮助资料,MongoDB的资料百度一下多的可以。但是TokuMX少之又少,使用者估计更少。
为什么
TokuMX比MongoDB强悍那么多,但使用得却不多呢?原因是我想只有一个吧,在稳定性方面
TokuMX远远不如MongoDB。
所以我还是会选择
MongoDB。