mariadb mysql 5.6_MySQL 5.6 和 MariaDB-10.0 的性能比较测试
Oracle 剛剛發(fā)布了?MySQL 5.6.10 GA?版本,所以是時候更新下之前的性能測試數(shù)據(jù)了,此次的測試包括以下幾個版本:
MySQL-5.5.29
MySQL-5.6.10
MariaDB-5.5.28a
MariaDB-10.0.1
此次測試還保留了 5.5 版本是為了進行回歸測試。之前我們經(jīng)常發(fā)現(xiàn)新版本在性能上反倒而落后的情況。
此次測試在不同的環(huán)境下執(zhí)行,主要的不同是沒用 SSD 而是使用高性能的帶 512 兆?battery-backed 緩存的 RAID-5 存儲。此外測試的機器具有 16 核,其中 12 核運行 mysqld ,另外 4 核運行 sysbench。
測試使用 sysbench-0.5 OLTP ,包好 8 個表和 10G 的數(shù)據(jù)。InnoDB 的緩沖池大小是 16G,日志 4G。不同的磁盤系統(tǒng)要求不同的 InnoDB 配置:
innodb_io_capacity = 1000 (was 20000 for SSD)
innodb_flush_neighbors = 1 (was 0 for SSD)
下面是測試結(jié)果,首先是 OLTP 只讀:
非常奇怪,MySQL 5.6 在此輪測試中居然表現(xiàn)異常。在 8 個線程時相差不大,在 16 個線程時變現(xiàn)最佳。但更高的并發(fā)下性能就迅速下降,甚至比 MySQL 5.5 還差。而 MariaDB 10.0 則比 MariaDB 5.5 表現(xiàn)上要差一些,但沒那么明顯。
而響應(yīng)時間圖表則表示比較好而且平滑:
MySQL-5.6 和 MariaDB-10.0 看起來要稍微好一些,意味著它們能更好的分配 CPU 周期。
聲明: 此次測試沒有使用線程池。Oracle 的線程池實現(xiàn)已經(jīng)閉源了,因此沒法進行測試和使用,如果在 MariaDB 上使用線程池的話就顯得有點不公平。
如果你想了解線程池對性能的影響,可查看之前的兩篇文章:
第二個測試:OLTP 讀寫測試
這個圖跟前一個測試差不多,MySQL 5.6 和 MariaDB 10.0 在性能表現(xiàn)上都比 5.5 版本要下滑不少,在高負載的情況下,下滑了 10% 左右。
這是一個人所共知的事實,MySQL 5.5 在高負載下因為同步的 flush 操作導致的性能下滑。
響應(yīng)時間圖相對要好一些:
這是一個好消息,5.5 版本在 64 個線程或者更多線程的情況下響應(yīng)時間差了很多。而 MySQL 5.6 和 MariaDB 10.0 的適應(yīng)性 flush 算法似乎工作良好。
這里還有一個問題:如果你使用多個緩沖池實例,你將會看到寫操作延遲更厲害。上面的結(jié)果中,只讀測試使用了 16 個緩沖池,而讀寫測試只用了 1個。
結(jié)論:
MySQL-5.6 性能表現(xiàn)比前一個版本要差,特別是高并發(fā)的情況下。這與 Oracle 發(fā)布的測試結(jié)果不符。我只能推測為什么結(jié)果差異那么大,我猜是 Oracle 閉源的線程池以及 Oracle 在更大的機器上進行測試導致。
使用單個緩沖池情況下不需要擔心寫延遲的問題。同時 MySQL 5.6 允許高達 512G 的 redo 日志可降低同步 flush 操作。
歡迎大家重做這個測試并與我們分享測試結(jié)果。
總結(jié)
以上是生活随笔為你收集整理的mariadb mysql 5.6_MySQL 5.6 和 MariaDB-10.0 的性能比较测试的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 原生 添加数据_手撸Mysq
- 下一篇: mysql fio测试_MySQL Ha