测试说明:
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(读出记录,然后修改记录,然后写回记录)
各项指标测试结果:
数据库类型 |
测试类型 |
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 |
|
数据库类型 |
测试类型 |
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 |
数据库类型 |
|
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