强同步性能对比数据
最近更新时间: 2026-03-13 09:03:00
本文提供 MySQL/MariaDB 与开源 MySQL(未经优化)的性能对比,用于做对比参考。
对比测试环境
- **硬件:**CPU 24core ,内存128GB,磁盘1.8TB SSD
- **网络环境:**局域网,平均网络延迟0.80ms
- **操作系统:**CentOS 7.0
- **数据量:**10张表,每张表2180000行,每张表数据量约5.2GB,innodb buffer:30GB
- **开源版本:**MySQL 5.6 社区版(未经优化,开启异步同步)
- MySQL/MariaDB 分片版本: MariaDB 10.1.10(内核优化,开启强同步),默认开启线程池
对比测试结果
综合来看,经过优化的 MySQL/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 |
MySQL/MariaDB |
310695 |
0.15 |
0.24 |
| 100 |
开源 MySQL |
417443 |
0.24 |
0.48 |
| 100 |
MySQL/MariaDB |
454640 |
0.2 |
0.72 |
| 200 |
开源 MySQL |
423419 |
0.57 |
1 |
| 200 |
MySQL/MariaDB |
488224 |
0.56 |
1.22 |
| 500 |
开源 MySQL |
438512 |
1.16 |
2.42 |
| 500 |
MySQL/MariaDB |
490678 |
1.21 |
2.61 |
| 1000 |
开源 MySQL |
412723 |
2.3 |
6.3 |
| 1000 |
MySQL/MariaDB |
481342 |
2.1 |
4.21 |
2. 写请求(update)
| 并发 |
版本 |
qps |
平均响应时间(ms) |
99%响应时间(ms) |
| 50 |
开源 MySQL |
24816 |
2.37 |
2.82 |
| 50 |
MySQL/MariaDB |
28925 |
2.33 |
2.55 |
| 100 |
开源 MySQL |
43046 |
2.25 |
3.91 |
| 100 |
MySQL/MariaDB |
43466 |
2.3 |
4 |
| 200 |
开源 MySQL |
54690 |
3.92 |
7.86 |
| 200 |
MySQL/MariaDB |
54045 |
3.7 |
7.27 |
| 500 |
开源 MySQL |
70192 |
7.44 |
14.1 |
| 500 |
MySQL/MariaDB |
70370 |
7.25 |
15.52 |
| 1000 |
开源 MySQL |
68447 |
15.2 |
29.47 |
| 1000 |
MySQL/MariaDB |
69890 |
14.35 |
30.73 |
3. 混合场景(OLTP 测试)
| 并发 |
版本 |
qps |
平均响应时间(ms) |
99%响应时间(ms) |
| 50 |
开源 MySQL |
154806 |
2.7 |
4.13 |
| 50 |
MySQL/MariaDB |
162883 |
1.84 |
3.45 |
| 100 |
开源 MySQL |
162696 |
3.85 |
7.4 |
| 100 |
MySQL/MariaDB |
173974 |
3.58 |
6.64 |
| 200 |
开源 MySQL |
204550 |
5.64 |
12.92 |
| 200 |
MySQL/MariaDB |
208128 |
5.76 |
11.9 |
| 500 |
开源 MySQL |
235386 |
13.93 |
28.58 |
| 500 |
MySQL/MariaDB |
232543 |
13.58 |
27.23 |
| 1000 |
开源 MySQL |
201765 |
28.29 |
60.72 |
| 1000 |
MySQL/MariaDB |
226130 |
27.76 |
54.38 |