测试是由同事完成的,这里只做收藏。
测试说明:
1、数据量为3kw记录,每条记录11个字段,一个为主键,主键为字符类型,类似:user****,后续为数值
其他10字段为字符类型,100字符,记录长度大约为1KB
2、使用ycsb进行压力测试。具体各类型参考以前文档
3、三千万数据,对目前数据库都能缓存到DB中(后续测试缓存80%,50%,30%等情况下性能情况)
4、测试项包括:数据装载,就是insert数据
                      ycsb的标准负载a、负载b、负载c、负载d、负载e、负载f测试
                      都采用64线程进行压测,通过分析是最优的
                      mysql测试环境为innodb_buffer_pool_size=20G
                      mysql_100g为innodb_buffer_pool_size=100G
                      mongodb为cacheSizeGB=20G
                      mongodb_100g为cacheSizeGB=100G
负载a:read=0.5,update=0.5,insert=0,scan=0(无范围查询)
负载b:read=0.95,update=0.05,insert=0,scan=0(无范围查询)
负载c:read=100  ---纯读应用,scan=0(无范围查询)
负载d:read=0.95,insert=0.05,scan=0(无范围查询)
负载e:scan=0.95,insert=0.05,范围查询,范围为100
负载f:read=0.5,readmodifywriteproportion=0.5(读出记录,然后修改记录,然后写回记录)
各项指标测试结果:
  • IOPS测试
数据库类型
测试类型 mysql mongodb tokuMX couchbase
insert 13196.1154 77248.81715 36650.51286 92041.69321
a 17414.53382 120763.7097 56441.69009 171759.3308
b 68047.57887 99998.66668 98474.30477 159533.7361
c 65496.17721 96096.55782 96174.49901 97495.02775
f 16601.97431 83504.51759 58816.14856 112853.6551
d 66899.9244 100008.6674 97753.62177 101810.8761
e 2345.999594 2114.057191 2116.884482  
 
 
  • 插入延迟
  数据库类型
测试类型 mysql mongodb tokuMX couchbase
insert 9683.304403 1658.783526 3490.779132 1337.107262
d 2238.196522 687.4064251 751.8563847 1246.501145
e 19863.49348 13568.54149 12914.24357  
 
 
  • updsate延迟
数据库类型
测试类型 mysql mongodb tokuMX couchbase
a 6840.743134 649.0976047 1670.448293 685.4414804
b 2260.907568 774.5944686 721.1753008 773.1773418
f 6583.488954 572.8773741 1198.842941 722.6498385
 
 
读-修改-写延迟
  数据库类型      
测试类型 mysql mongodb tokuMX couchbase
d 7133.568479 1050.091246 1677.069403 1442.553442
 
 
  • 范围扫描延迟
数据库类型
测试类型 mysql mongodb tokuMX
e 24474.38263 31060.48241 31075.847
 
 
  • 存储大小(GB)
数据库类型
  mysql mongodb tokuMX couchbase
1千万 19 4.2 8.5 11.2
 
 
结论:
   1、所有NoSQL数据库的插入OPS读比MySQL强,其中couchbase最强,然后是mongoDB和tokuMX
   2、所有NoSQL数据库的插入延迟读比MySQL小,其中couchbase最强,然后是mongoDB和tokuMX
   3、读延迟最多的是couchbase,不如MySQL
   4、update延迟,NoSQL都比MySQL强
   5、范围扫描,MySQL比所有NoSQL强,由于couchbase测试问题未拿到数据(后续补充)
   6、数据容量NoSQL数据库比MySQL占空间小,依次为MySQL、couchbase、tokuMX、mongoDB

YCSB测试Mysql,MongoDB,TokuMX,Couchbase性能的更多相关文章

  1. 使用YCSB测试mongodb

    项目里面需要对mongodb的性能进行测试,看了下网上很多做法都是使用YCSB进行测试,因此开始学习使用YCSB. 参考资料: YCSB github地址:https://github.com/bri ...

  2. 【操作教程】利用YCSB测试巨杉数据库性能

    一.前言 巨杉数据库(SequoiaDB)是国内第一款新一代文档型分布式数据库,巨杉数据库由巨杉软件完全自主研发,拥有完全自主知识产权,不基于任何其它的开源项目.SequoiaDB数据库是为分布式存储 ...

  3. (转)MySQL自带的性能压力测试工具mysqlslap详解

    mysqlslap 是 Mysql 自带的压力测试工具,可以模拟出大量客户端同时操作数据库的情况,通过结果信息来了解数据库的性能状况 mysqlslap 的一个主要工作场景就是对数据库服务器做基准测试 ...

  4. python测试mysql写入性能完整实例

    这篇文章主要介绍了python测试mysql写入性能完整实例,具有一定借鉴价值,需要的朋友可以参考下 本文主要研究的是python测试mysql写入性能,分享了一则完整代码,具体介绍如下. 测试环境: ...

  5. HBase、Redis、MongoDB、Couchbase、LevelDB主流 NoSQL 数据库的对比

    最近小组准备启动一个 node 开源项目,从前端亲和力.大数据下的IO性能.可扩展性几点入手挑选了 NoSql 数据库,但具体使用哪一款产品还需要做一次选型. 我们最终把选项范围缩窄在 HBase.R ...

  6. MongoDB的真正性能-实战百万用户

    阅读目录 一.第一个问题:Key-Value数据库可以有好多的Key,没错,但对MongoDB来说,大错特错 二.第二个问题:FindOne({_id:xxx})就快么? 三.第三个问题:精细的使用U ...

  7. [转载]MongoDB的真正性能

    最近开始研究MySQL和MongoDB,发现这方面资料不多.尤其是真正的说到点子上的文章,太少了. 有一些对比测试的文章基本上都是瞎测,测试方法都测到了马腿上,得出的结论基本上都是NoSQL毫无价值 ...

  8. YCSB测试HBase远程完全分布式集群

    写在前面 本文只讲一个很简单的问题,YCSB对HBase集群的测试.虽然网上有很多介绍YCSB测试HBase的文章,但都是针对本地HBase伪分布式集群的.大家都知道,稍微正式一些的压测都会要求测试客 ...

  9. MYSQL使用PMM进行性能监控

    简介Percona监视和管理(PMM)是一个用于管理和监视MySQL和MongoDB性能的开源平台.它是由Percona与托管数据库服务.支持和咨询领域的专家合作开发的. PMM是一个免费的开源解决方 ...

随机推荐

  1. 《Matrix Computation 3rd》读书笔记——第2章 矩阵分析

  2. Java-适配器

    对于Java程序来说,如果一个类要实现一个接口,则必须要覆写此接口中的全部抽象方法,那么如果此时一个接口中定义了抽象方法过多,但是在子类中有用不到这么多的抽象方法,则肯定很麻烦,所以此时需要一个中间的 ...

  3. mock测试到底是什么?

    ​    ​经常听人说mock测试,究竟什么是mock测试呢?mock测试能解决什么问题?mock测试要如何做呢?今天为大家做简单介绍,之后会有详细的mock测试,感谢大家对测试梦工厂的持续关注. 概 ...

  4. hibernate:Named query not known: findXXXX or XXXX is not mapped

    .hbm.xml文件所放的位置怎么看怎么都在spring配置的扫描路径中,就是会出现标题所示错误,查看log日志,的确也没发现XXXX被mapped的记录~ 参考解决方案: 在eclipse导出jar ...

  5. [Spring MVC] - 从数据库读取MessageSource

    Spring MVC中使用MessageSource默认是写在properties文件当中,以支持国际化. 但很多时候我们需要把数据写到数据库当中,而不是在properties文件当中,以方便日常维护 ...

  6. Pychram如何导入Django项目

    最近在学Django,用GitHub来保存项目.但当从GitHub中clone出来后,Pycharm怎么来运行项目呢? 首先要对项目进行设置,使其能支持Django,具体设置如下: 在Pycharm中 ...

  7. day21、模块

    模块: 模块,用一砣代码实现了某个功能的代码集合.不同功能,放置在不同模块中,模块就是一个.py文件.避免函数重复写代码.对于相同功能的代码.只需要调用该模块或者该模块里面的函数就可以.增加灵活性,和 ...

  8. DHTMLX-Grid

    DHTMLX - Grid 介绍 dhtmlxGrid是一个灵活的.易于使用的JavaScript网格组件,可以创建DHTML表与丰富的编辑- sensing,固定的多行页眉和页脚,可调整大小的.可拖 ...

  9. oracle and 和 or

    源地址:https://zhidao.baidu.com/question/350891282.html (FirstName='Thomas' OR FirstName='William') AND ...

  10. C++11 lambda的理解

    C++11 的 lambda 表达式规范如下: [ capture ] ( params ) mutable exception attribute -> ret { body } (1) [ ...