當前位置:
首頁 > 科技 > MySQL 8.0 每秒可執行 210 萬次 SQL 查詢!

MySQL 8.0 每秒可執行 210 萬次 SQL 查詢!

MySQL 8.0的第一個發行候選版本(rc)已問世,我很高興介紹性能方面的若干情況。本文將介紹一種「最簡單」的性能,即內存中只讀性能。

然而,使用測試工作負載出於以下兩個原因:

1)驗證MySQL8.0的性能;

2)全面評估Alex開發的「新的」Sysbench(https://github.com/akopytov/sysbench)。

直接說說第二個原因,新的Sysbench主要讓人擔心的地方是它的LUA開銷(前一個版本0.5運行速度不如舊版本0.4,就是由於LUA)——長話短說,我現在可以證實:新的Sysbench運行起來速度與我使用過的最舊、「最輕量級」的Sysbench二進位代碼一樣快,所以向Alex致敬!

說到MySQL8.0在只讀工作負載方面的若干改進,我想提以下幾點:

幾個「開銷」已得到了解決;

當然,最顯著的開銷與UTF8與有關;

然而,連與latin1有關的函數也得到了一點改進;

但這僅僅涉及「開銷」,根本不涉及「可擴展性」;

由於主要的「可擴展性」缺口已經在兩年前由MySQL 5.7堵上;-))

所以,這裡MySQL 8.0的主要優點將是保留已經獲得的性能提升!

(同意,聽起來很奇怪,但如果你只要看一下8.0隨帶的所有新的功能特性:http://mysqlserverteam.com/mysql-8-0-rc1-highlights/,就能想像我們的代碼路徑不會比較短。)

所以這裡合理的測試就是拿latin1編碼來比較8.0與5.7/5.6。

(就UTF8而言,勝者是8.0,而且優勢明顯,這點你已經知道。)

Sysbench中最「合理」的只讀工作負載是Point-Selects,所以這是我的測試場景:

工作負載:新的Sysbench只讀point-selects

數據量:8個表,每個表有1000萬行

編碼:latin1

用戶負載級別:1、2、4、..1024

引擎:MySQL 8.0、MySQL 5.7和MySQL 5.6

伺服器:96核超線程(HT)4CPU插座2.2Ghz(Broadwell),OL7.3

以下是測試結果:

觀測數據:

MySQL8.0每秒210萬次SQL查詢——這是MySQL有史以來每秒最多查詢次數(Max QPS)方面目前獲得的新記錄!

毫無疑問,這點很贊!

然而,若是較低的負載級別,QPS方面顯然出現了小幅但明顯的倒退。

這可不好(即使很容易由增加的代碼路徑+新的DD+其他因素來解釋)。

好了,暫且把這添加到我的「低負載」性能問題列表中,以後再來調查。

到目前為止,210萬次的QPS結果是在「舊」BroadwellCPU上獲得的,沒有發現任何瓶頸(只有潛在的開銷),所以暫時我不知道同樣的工作負載在4CPU插座Skylake上會有怎樣的表現,一旦拿到這樣的CPU,我會公布相應結果。

然後,許多人不斷問我如何再現上述結果,於是我在下面列出大家可能想要知道的所有詳細步驟:

1)安裝和啟動MySQL8.0實例(發行候選版本或當前的實驗室版本)。

2)我使用的配置設置如下:

注意:沒錯,我知道,PFS已關閉,比較PFS打開和關閉的結果隨後會出來,別擔心!

4)下載打包文件(tarball,http://dimitrik.free.fr/BMK.tgz)以及我的腳本、sysbench二進位代碼以及my.conf,然後解壓縮到「/」目錄。

5)這將創建/BMK目錄,所有內容都在裡面,於是編輯「.bench」文件,提供帳戶細節信息,從而連接到MySQL實例(用戶、密碼、主機和埠)。

6)創建「sysbench」資料庫。

7)運行負載數據腳本:

這將裝入8個表,每個表有1000萬行。

8)在sysbench資料庫裡面對每個表運行分析(ANALYZE),確保這些表的統計數字是最新的。

9)運行測試:

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雲頭條 的精彩文章:

網宿科技前三季度凈利潤預降33%-43%
運維是幹嘛的!
西部數據推出新的MAMR磁碟驅動器技術,應對數據中心的存儲挑戰
谷歌、紅帽、IBM等8家共同開源Grafeas API,化解軟體供應鏈的難題!
未來IT的三駕馬車:AI、物聯網和混合雲

TAG:雲頭條 |