3大主流NoSQL数据库性能对比测试报告
近日,知名独立基准测评机构Bankmark,针对目前市面上主流的NoSQL数据库SequoiaDB、MongoDB以及Cassandra三款NoSQL数据库产品做了性能对比测试并发布测试报告。在所有的测试中,三款NoSQL数据库产品的表现各有千秋,没有那款产品能在所有测试场景中完败对手,就整体表现而言SequoiaDB与Cassandra不相上下表现上佳,而MongoDB表现却不理想属于垫底的存在。
测试机构:
Bankmark是一家德国的独立基准测评机构,业内著名的NoSQL性能测试团队。
测试产品:
MongoDB(目前名气最大,用的人最多的NoSQL数据库,占据了非关系型数据库的主流位置。)
SequoiaDB(由前IBM DB2团队的研发人员创建,据称在性能和功能上能够与MongoDB做正面抗衡。)
Cassandra(是Facebook的数据库系统的开源分支,支持者众多,而Cassandra能一直稳压HBase(高贵的血统,与Hadoop天然集成)长期霸占列存储第一更是其优越性的强有力证明。)
测试环境:
Bankmark使用了 Yahoo Cloud Serving Benchmark(YCSB)测试框架作为测试工具。
所有的测试都在物理硬件上进行,没有使用任何虚拟化的层级。
所有的数据库测试都在一个10节点的集群上进行,其中10台服务器(Dell PowerEdge R520(5台)、Dell PowerEdge R720(5台))作为数据库系统的主机,5台(HP ProLiant BL465c)刀片机作为YCSB客户端。
测试结果:
从报告结果来看,没有那款产品能在所有测试场景中全部击败对手,在“大部分内存环境”的设定下,SequoiaDB的性能明显优于其他的产品,除了在Cassandra的强项“读多写少”。在“全内存环境”下测试结果表明,SequoiaDB拥有更快速的读请求性能,而Cassandra在写请求下表现要好于SequoiaDB。然而,在所有的测试案例中,MongoDB几乎都是最慢的。更多内容请见测试报告(NoSQL Performance Test)
大部分内存环境(Mostly-in-memory):原始数据大小为总RAM大小的1/4
全内存环境(in-memory):原始数据大小为总RAM大小的1/2
测试场景1: 2亿条记录(每个节点2000万)
在本实验中,全内存环境下(原(始)数据大小大约占系统总内存的45%左右 )
1、单条数据导入

▲单条记录载入测试
从上图结果中可以看到,在全内存环境下,单条记录载入操作,Cassandra最高,总吞吐量可达每秒近7万,Mongodb最差。
2、批量数据导入(1000条记录一批次)

▲批量记录载入测试
在该测试中,数据为每批次1000条,测试结果显示,SequoiaDB可以达到每秒钟近6.5万的导入速度。
3、Zipfian分布,100%读

▲单纯随机查询测试
单纯随机查询的测试中,SequoiaDB表现最为突出,Mongodb次之。
4、Zipfian分布,50%读,50%更新

▲查询更新平衡测试
在查询更新平衡测试中(50%读,50%更新),Sequoiadb表现最佳,Mongodb表现最不理想。
5、Zipfian分布,5%读,95%更新

▲更新为主的测试
在以更新为主的测试中(5%查询,95%更新),Cassandra表现最佳。
6、Zipfian分布,95%读,5%更新

▲查询为主的测试
在以查询为主的测试中(95%查询,5%更新),mongodb表现最优秀,Cassandra最差
7、latest分布,95%读,5%插入

▲查询最新测试
从图中可以看出,查询最新测试中,SequoiaDB对于刚刚写入至内存中便读取的场景性能最佳,Cassandra最差
测试场景2: 1亿条记录(每个节点1000万)
在本案例/实验中,大部分内存环境下(原(始)数据大小大约占系统总内存的22%左右)
1、单条记录导入

▲单条记录导入测试
从上图结果中可以看到,在大部分内存环境下,单条记录载入操作,Sequoiadb最佳。这与在全内存环境下结果发生了变化。
2、批量数据导入

▲批量载入测试
测试结果显示,SequoiaDB可以达到每秒钟7万多的导入速度。
3、Zipfian分布,100%读

▲单纯随机查询的测试
单纯随机查询的测试中,SequoiaDB表现依然是最为突出,Cassandra次之。。
4、Zipfian分布,50%读,50%更新

▲查询更新平衡的测试
在查询更新平衡测试中,50%读,50%更新,Sequoiadb依然表现最佳
5、Zipfian分布,5%读,95%更新

▲更新为主的测试
在以更新为主的场景测试中(5%查询,95%更新),Cassandra秒杀对手。
6、Zipfian分布,95%读,5%更新

▲查询为主的测试
在以查询为主的场景中(95%查询,5%更新),Cassandra表现最佳,Mongodb反而表现最差
7、 latest分布,95%读,5%插入

▲查询最新的测试
从图中可以看出,与全内存环境不同的结果,SequoiaDB依然最快,Cassandra超过Mongodb仅次于SequoiaDB。
3大主流NoSQL数据库性能对比测试报告的更多相关文章
- 几款主流 NoSql 数据库的对比
最近小组准备启动一个 node 开源项目,从前端亲和力.大数据下的IO性能.可扩展性几点入手挑选了 NoSql 数据库,但具体使用哪一款产品还需要做一次选型. 我们最终把选项范围缩窄在 HBase.R ...
- HBase、Redis、MongoDB、Couchbase、LevelDB主流 NoSQL 数据库的对比
最近小组准备启动一个 node 开源项目,从前端亲和力.大数据下的IO性能.可扩展性几点入手挑选了 NoSql 数据库,但具体使用哪一款产品还需要做一次选型. 我们最终把选项范围缩窄在 HBase.R ...
- 几款主流 NoSql 数据库的对比(转)
转自:http://www.cnblogs.com/vajoy/p/5471308.html 最近小组准备启动一个 node 开源项目,从前端亲和力.大数据下的IO性能.可扩展性几点入手挑选了 NoS ...
- 主流的Nosql数据库的对比
主流的Nosql数据库的对比 MongoDB,Cassandra,CouchDB,Hypertable, Redis,Riak,Neo4j,Hadoop HBase, Couchbase,Mem ...
- Elasticsearch的几种架构(ELK,EL,EF)性能对比测试报告
Elasticsearch的几种架构性能对比测试报告 1.前言 选定了Elasticsearch作为存储的数据库,但是还需要对Elasticsearch的基础架构做一定测试,所以,将研究测试报告输出如 ...
- 两大主流开源分布式存储的对比:GlusterFS vs. Ceph
两大主流开源分布式存储的对比:GlusterFS vs. Ceph 存储世界最近发生了很大变化.十年前,光纤通道SAN管理器是企业存储的绝对标准,但现在的存储必须足够敏捷,才能适应在新的基础架构即服务 ...
- 6 大主流 Web 框架优缺点对比:15篇前端热文回看
摘自:http://blog.csdn.net/VhWfR2u02Q/article/details/78993079 注:以下文章,点击标题即可阅读 <6 大主流 Web 框架优缺点对比> ...
- 主流 NoSQL 数据库对比
HBase HBase 是 Apache Hadoop 中的一个子项目,属于 bigtable 的开源版本,所实现的语言为Java(故依赖 Java SDK).HBase 依托于 Hadoop 的 H ...
- 8种主流NoSQL数据库对比
摘要:虽然SQL数据库是非常有用的工具,但经历了15年的一支独秀之后垄断即将被打破.这只是时间问题:被迫使用关系数据库,但最终发现不能适应需求的情况不胜枚举. 简介 NoSQL,是一项全新的数据库革命 ...
随机推荐
- STORM_0001_用vmware拷贝出三个相同的ubuntu搭建小的zookeeper集群
第一次配置zookeeper的集群 因为想运行storm必须搭建集群在自己的电脑上拷贝了自己的ubuntu虚拟机采用的是vmware给虚拟机分配的地址三个机器的配置基本上一样除了myid这个文件看了这 ...
- poj2002Squares(点集组成正方形数)
链接 可以枚举两个点,因为是正方形两外两点可以由已知求出,据说可以根据三角形全等求出下列式子,数学渣不会证... 已知: (x1,y1) (x2,y2) 则: x3=x1+(y1-y2) y ...
- JavaSE复习_9 集合框架复习
△列表迭代器也是不支持在迭代的时候添加元素的,只是列表迭代器自己定义了增删的方法而已.迭代器可以看成实在两个元素之间的指针,每当调用next就跳过一个元素并返回刚刚跳过的元素. △HashTable不 ...
- JAVA调用C语言写的SO文件
JAVA调用C语言写的SO文件 因为工作需要写一份SO文件,作为手机硬件IC读卡和APK交互的桥梁,也就是中间件,看了网上有说到JNI接口技术实现,这里转载了一个实例 // 用JNI实现 // 实例: ...
- js 删除多个相同name元素。
var obj = document.getElementsByName("abc"); for(var i = 0;i<(obj.length) * 2;i++){ obj ...
- about opencl
Platform:LG G3,Adreno 330 1. 8M(3264x2448) memmap方式读入时间24ms,读出时间12ms,时间与内存大小基本成线性关系.使用memmap 与 memco ...
- libCEF总结02字符串
libCEF 的 CefString.cef_string_t 在 Windows 下均表示一个 16 位的 Unicode 字符串,它们的使用请参考下面的代码 {//wchar_t* ==> ...
- Form1和Form2的交互
比如在第二个窗体中操作第一个窗体中的TreeView,动态添加节点和子节点. ------回答--------- ------其他回答(20分)--------- 尽量不要这样做.控件,窗体,你在.n ...
- this 指向
this-->当前行为发生的主体就是this,但是this是谁和这个方法在哪执行的或者在哪定义的都没有半毛钱的关系 如何的区分JS中的this? 1)函数执行,看函数名前面是否有".& ...
- Django数据库设置
设置数据库,创建您的第一个模型,得到一个简单介绍 Django的自动生成管理网站. 数据库设置 现在,打开 mysite / settings.py . 这是一个普通的Python模块 模块级变量代表 ...