MariaDB 10.1 和 MySQL 5.7 在普通商用硬體上的表現
你讀到我的上一篇文章關於 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 和它的前身。就不再多說廢話了,看結果。
對於那些更偏愛數字而非圖表的同學:
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 |
所以應該是 MySQL 效能更加優越。但我們能從這些數字中擷取的資訊遠不止這些。讓我們看看還能從這些數字中提取到什麼內容:
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% |
這種比較的結果是令人驚訝的,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 10.1.8 發布下載,MySQL 分支
Linux系統教程:如何檢查MariaDB服務端版本
MariaDB Proxy讀寫分離的實現
Linux下編譯安裝配置MariaDB資料庫的方法
CentOS系統使用yum安裝MariaDB資料庫
安裝MariaDB與MySQL並存
Ubuntu 上如何將 MySQL 5.5 資料庫遷移到 MariaDB 10
[翻譯]Ubuntu 14.04 (Trusty) Server 安裝 MariaDB