你读到我的上一篇文章关于 MariaDB 10.1 GA 性能的文章时,你可能会困惑我为什么对 MySQL 5.7 只字未提。原因有两个:首先,MySQL 在那时还不是 GA。其次,MySQL 在 Power8 上运行并不稳定。
这次,我会拿出一个比较基准来对比他们之间的性能差别。我选了一些比较普通的硬件,因为大多数用户将运行这样的主机。用的是一个OVH的SP-64主机。4核英特尔CPU,内存为64G。磁盘一般,但基准又是一个简化的只读OLTP往返内存的工作负载。
为了让事情更有趣,我加了最新的 MySQL 5.6。所以我们现在有4个对比:全新的 MySQL5.7 GA和它的前辈和全新 MariaDB10.1 GA 和它的前身。就不再多说废话了,看结果。
对于那些更偏爱数字而非图表的同学:
clientsMariaDB 10.0.21MariaDB 10.1.8MySQL 5.6.27MySQL 5.7.9
1
22166
22748
24456
21499
2
41220
42155
45314
40552
4
70850
72865
78024
69816
8
112328
118933
126892
112442
16
113645
119503
129029
112502
32
113572
119663
127780
112925
64
111003
117255
125526
110663
128
111015
116137
124158
108568
256
111232
115688
116337
102345
所以应该是 MySQL 性能更加优越。但我们能从这些数字中获取的信息远不止这些。让我们看看还能从这些数字中提取到什么内容:
clientsMariaDB 10.1 vs. MariaDB 10.0MySQL 5.7 vs. MariaDB 10.1MySQL 5.7 vs. MySQL 5.6
1
+2,6%
-5,5%
-12,1%
2
+2,3%
-3,8%
-10,5%
4
+2,8%
-4,2%
-10,5%
8
+5,9%
-5,5%
-11,4%
16
+5,2%
-5,9%
-12,8%
32
+5,4%
-5,6%
-11,6%
64
+5,6%
-5,6%
-11,8%
128
+4,6%
-6,5%
-12,6%
256
+4,0%
-11,5%
-12,0%
这种比较的结果是令人惊讶的,MySQL 5.7.9不仅比 MariaDB 10.1.8(我猜你应该阅读,在MariaDB博客)慢,而且它也比 MySQL 的27年6月5日慢得多。这个不幸的趋势也被其他人观察到了。 MariaDB 另一方面可以从 10.0.21 升级至 10.1.8。
基准测试详细信息
在使用基准再次sysbench的。基准是使用单个一百万行的表。使用单个或多个表对这样一个小机器不会产生太大的差别。 my.cnf如下:
[mysqld]
max_connections = 300
table_open_cache = 600
innodb_buffer_pool_size = 512M
performance–schema = false
secure_file_priv = /tmp
注意:最后一行只对 MySQL 5.7 是有意义的。而倒数第二行(禁用性能模式)只对 MySQL 有意义。没错,请确保您禁用性能模式或压低 MySQL 的性能几个百分比。 MariaDB 默认情况下是禁用性能模式的。
用以测试的命令是这样的:
sysbench–0.5 –test=lua/oltp.lua –oltp–table–size=1000000 \
–oltp–read–only=on –oltp_point_selects=1000 \
–oltp_sum_ranges=0 –oltp_simple_ranges=0 \
–oltp_order_ranges=0 –oltp_distinct_ranges=0 \
—max–requests=0 —max–time=100 –num–threads=… run
MariaDB 的详细介绍:请点这里
MariaDB 的下载地址:请点这里