測試mysql5.7和mysql8.0 分別在讀寫、只讀、只寫模式下不同并發(fā)時的性能(tps,qps)
公司主營業(yè)務:網(wǎng)站建設、做網(wǎng)站、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)公司推出汝州免費做網(wǎng)站回饋大家。
機器
myql5.7.22
mysql8.0.15
sysbench
mysql5.7和mysql8.0 在讀寫模式下的表現(xiàn)
雙1 配置,讀寫模式下,mysql5.7.22 和mysql8.0.15 tps 、qps 性能差不多,mysql8.0.15 在120 線程并發(fā)時,性能出現(xiàn)了下降抖動:
mysql5.7和mysql8.0 在只讀模式下的表現(xiàn)
雙1 配置,只讀模式下,mysql5.7.22 的tps、qps比mysql8.0.15 好1/3 左右;并發(fā)線程數(shù)增加后,tps、qps并沒有隨著增加,反而出現(xiàn)了下降的趨勢:
mysql5.7和mysql8.0 在只寫模式下的表現(xiàn)
雙1 配置,只寫模式下,隨著并發(fā)數(shù)的上升,mysql5.7.22 的性能比mysql8.0.15 好1/4左右
mysql5.7和mysql8.0 在讀寫模式下的表現(xiàn)
0 2配置,讀寫模式下,并發(fā)數(shù)低時,mysql5.7.22性能好于mysql8.0.15; 并發(fā)數(shù)比較高時,mysql8.0.15 性能好于mysql5.7.22;在80 線程的并發(fā)以上時,性能開始下降
mysql5.7和mysql8.0 在只讀模式下的表現(xiàn)
0 2配置,只讀模式下,mysql5.7.22性能比mysql8.0.15 好1/3左右;隨著并發(fā)數(shù)的上升,性能也沒有上升,反而有下降的趨勢
mysql5.7和mysql8.0 在只寫模式下的表現(xiàn)
注意
sysbench 需要設置--db-ps-mode=disable 禁用預編譯語句,不然并發(fā)測試線程多時會報下面的錯誤
使用腳本
MySQL 5.7 已經(jīng)開發(fā)兩年了。相比 MySQL 5.6,有特別多的改進。團隊主要關注速度,性能據(jù)報告是比之前版本提升了 2 至 3 倍! 新特性列表,主要改進: 提升 MySQL 安全性 改進了安裝程序 MySQL 5.6 中,mysql_install_db 在數(shù)據(jù)庫創(chuàng)建的時候提供...
mysql5.7是5.6的新版本,在沒有減少功能的情況下新增了功能與進行了優(yōu)化,例如新增了新的優(yōu)化器、原生JSON支持、多源復制,還優(yōu)化了整體的性能、GIS空間擴展、InnoDB。
1、原生json支持
MySQL 5.7可以定義原生json類型數(shù)據(jù),對json數(shù)據(jù)進行有效性檢查,查詢不需要遍歷所有字符串才能找到數(shù)據(jù),通過虛擬列的功能可以對JSON中的部分數(shù)據(jù)進行索引。
2、多源復制
MySQL 5.7開始支持多源復制,也就是多主一從的復制架構(gòu)。各個庫匯總在一起,就算是其他庫都掛了(整個機房都無法連接了),還有最后一個救命稻草。不需要每個庫都做一個實例,也減少了DBA的維護成本。
3、InnoDB優(yōu)化
MySQL 5.7針對innodb_buffer_pool_size、innodb_log_file_size、innodb_flush_method提供了更加合適的默認值。
參考資料來源:MYSQL-MySQL 5.7的新增功能
如果我們查看“top”命令的輸出,我們會看到:MySQL 5.7
MySQL 8.0
這也展示出 MySQL8 使用的更多常駐內(nèi)存和虛擬內(nèi)存。特別是“可怕的”虛擬內(nèi)存,因為它遠遠超過這些 VM 上可用的 1GB 物理內(nèi)存。當然,虛擬內(nèi)存使用(VSZ)是現(xiàn)代應用程序?qū)嶋H內(nèi)存需求的一個很差的指標,但它確實證實了更高的內(nèi)存需求這個事。
實際上,正如我們從 “vmstat” 輸出中所知道的那樣,即使沒有太多的“空間”,MySQL 8 和 MySQL 5.7 都不會在低負載下使用 swap 分區(qū)。如果您有多個連接或希望在同一個 VM 上運行某些應用程序,則可以使用 swap(如果未啟用交換,則可能導致 OOM)。
這是一個有趣的實驗,能看看我有多少可以驅(qū)動 MySQL 5.7 和 MySQL 8 的內(nèi)存消耗。