Performance of MariaDB 10.1 and MySQL 5.7 on common commercial hardware
When you read my previous article about MariaDB 10.1 GA performance, you may be confused why I haven't mentioned MySQL 5.7 words. There are two reasons: First, MySQL was not GA at that time. Second, MySQL runs stably on Power8.
This time, I will come up with a benchmark to compare the performance differences between them. I chose some common hardware because most users will run such a host. An OVH SP-64 host is used. 4-core Intel CPU, with 64 GB memory. General disks, but the benchmark is a simplified read-only OLTP back-to-memory workload.
To make things more interesting, I added the latest MySQL 5.6. So now we have four comparisons: brand new MySQL5.7 GA and its predecessors and brand new MariaDB10.1 GA and its predecessor. Let's stop talking nonsense and look at the results.
For those who prefer numbers rather than charts:
Clients |
MariaDB 10.0.21 |
MariaDB 10.1.8 |
MySQL 5.6.27 |
MySQL 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 |
Therefore, MySQL has better performance. But the information we can get from these numbers is far more than that. Let's see what can be extracted from these numbers:
Clients |
MariaDB 10.1 vs. MariaDB 10.0 |
MySQL 5.7 vs. MariaDB 10.1 |
MySQL 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% |
The results of this comparison are surprising. MySQL 5.7.9 is not only slower than MariaDB 10.1.8 (I guess you should read it at the MariaDB blog), but also much slower than MySQL's June 5. This unfortunate trend was also observed by others. MariaDB can also be upgraded from 10.0.21 to 10.1.8.
Benchmark Test details
Use the benchmark again in sysbench. The benchmark is a table with a single 1 million rows. Using one or more tables does not produce much difference for such a small machine. My. cnf is as follows:
[Mysqld]
Max_connections = 300
Table_open_cache = 600
Innodb_buffer_pool_size = 512 M
Performance-schema = false
Secure_file_priv =/tmp
Note: The last row only makes sense for MySQL 5.7. The last line (disable performance mode) is only meaningful to MySQL. Make sure that you disable the performance mode or reduce the percentage of MySQL performance. MariaDB disables the performance mode by default.
The command used for testing is as follows:
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 10.1.8 release and download, MySQL Branch
Linux Tutorial: How to check the MariaDB server version
Implementation of MariaDB Proxy read/write splitting
How to compile and install the MariaDB database in Linux
Install MariaDB database using yum in CentOS
Install MariaDB and MySQL
How to migrate MySQL 5.5 database to MariaDB 10 on Ubuntu
Install MariaDB on the Ubuntu 14.04 (Trusty) Server