有奖:语音产品征文挑战赛火热进行中> HOT
本文提供 MariaDB 与开源 MySQL(未经优化)的性能对比,用于做对比参考。

对比测试环境

硬件:CPU 24core ,内存128GB,磁盘1.8TB SSD
网络环境:局域网,平均网络延迟0.80ms
操作系统:CentOS 7.0
数据量:10张表,每张表2180000行,每张表数据量约5.2GB,innodb buffer:30GB
开源版本:MySQL 5.6 社区版(未经优化,开启异步同步
MariaDB 分片版本: MariaDB 10.1.10(内核优化,开启强同步),默认开启线程池

对比测试结果

综合来看,经过优化的 MariaDB 的强同步性能略优于 MySQL 的异步性能。

对比测试详细数据

测试操作

1. 数据初始化参数

create database caccts ;
./sysbench --num-threads=500 --test=./tests/db/oltp.lua.bak --oltp-table-size=2180000 --oltp-tables-count=10 --oltp-point-selects=1 --oltp-simple-ranges=0 --oltp-sum-ranges=0 --oltp-order-ranges=0 --oltp-index-updates=1 --oltp-non-index-updates=0 --report-interval=1 --mysql-user=xxxxxx --mysql-password=xxxxxx --mysql-host=xxxxxx --mysql-db=caccts --max-time=360000 --max-requests=2000000000 prepare


2. 非索引更新(update)

./sysbench --num-threads=500 --test=./tests/db/update\\_non\\_index.lua --oltp-table-size=2180000 --oltp-tables-count=10 --percentile=99 --report-interval=1 --mysql-host=xxxx --mysql-user=xxx --mysql-password=xxx --mysql-db=caccts --max-time=360000 --max-requests=2000000000 --mysql-port=3306 run


3. 只读(select)

./sysbench --num-threads=500 --test=./tests/db/select.lua --oltp-table-size=2180000 --oltp-tables-count=10 --percentile=99 --report-interval=1 --mysql-host=xxxx --mysql-user=xxx --mysql-password=xxx --mysql-db=caccts --max-time=360000 -- max-requests=2000000000 --mysql-port=3306 run


4. 混合测试

./sysbench\\_orig --num-threads=500 --test=./tests/db/oltp\\_new.lua --oltp-read-only=off --oltp-table-size=2180000 --oltp-tables-count=10 --oltp-point-selects=1 --oltp-simple-ranges=0 --oltp-sum-ranges=0 --oltp-order-ranges=0 --oltp-distinct-ranges=0 --oltp-index-updates=1 --oltp-non-index-updates=0 --percentile=99 --report-interval=1 --mysql-host=xxxx -- mysql-user=xxx --mysql-password=xxx --mysql-db=caccts --max-time=360000 --max-requests=2000000000 --mysql-port=3306 run


对比测试结果

1. 读请求(read)

并发
版本
qps
平均响应时间(ms)
99%响应时间(ms)
50
开源 MySQL
306512
0.16
0.26
50
MariaDB
310695
0.15
0.24
100
开源 MySQL
417443
0.24
0.48
100
MariaDB
454640
0.2
0.72
200
开源 MySQL
423419
0.57
1
200
MariaDB
488224
0.56
1.22
500
开源 MySQL
438512
1.16
2.42
500
MariaDB
490678
1.21
2.61
1000
开源 MySQL
412723
2.3
6.3
1000
MariaDB
481342
2.1
4.21

2. 写请求(update)

并发
版本
qps
平均响应时间(ms)
99%响应时间(ms)
50
开源 MySQL
24816
2.37
2.82
50
MariaDB
28925
2.33
2.55
100
开源 MySQL
43046
2.25
3.91
100
MariaDB
43466
2.3
4
200
开源 MySQL
54690
3.92
7.86
200
MariaDB
54045
3.7
7.27
500
开源 MySQL
70192
7.44
14.1
500
MariaDB
70370
7.25
15.52
1000
开源 MySQL
68447
15.2
29.47
1000
MariaDB
69890
14.35
30.73

3. 混合场景(OLTP 测试)

并发
版本
qps
平均响应时间(ms)
99%响应时间(ms)
50
开源 MySQL
154806
2.7
4.13
50
MariaDB
162883
1.84
3.45
100
开源 MySQL
162696
3.85
7.4
100
MariaDB
173974
3.58
6.64
200
开源 MySQL
204550
5.64
12.92
200
MariaDB
208128
5.76
11.9
500
开源 MySQL
235386
13.93
28.58
500
MariaDB
232543
13.58
27.23
1000
开源 MySQL
201765
28.29
60.72
1000
MariaDB
226130
27.76
54.38