看到上面這個圖後,我終於知道網上流傳mysql5.7比mysql5.6快3倍的依據了,它的測試硬件如下:
Intel(R) Xeon(R) CPU E7-8890 v3 (codename Haswell-EX) 4 CPU sockets x 18 cores-HT (144 CPU threads) 2.5 Ghz, 512GB RAM Linux kernel 3.16
測試工具是sysbench,每個表100萬記錄,共8個表,採用非事務模式測試(純select)。
測試結果是在1000併發下,qps還比較淡定,高達160萬。
每一代mysql大版本,其最高qps匹配的是當年那個水平的頂級硬件能力,老外說:“
MySQL 5.7 is showing a near perfect scalability up to 72cores-HT on
4CPU sockets”,但是對於mysql5.6,從下圖可以看出,cpu core從36提升到72,其最高qps沒啥變化,只是併發能力提高了而已。
所以,在一般的硬件條件下,即使是純select,想測試出5.7比5.6快3倍的效果,嘿嘿。
本人在一臺esxi虛擬機上測試5.6和5.7的非事務select,採用的是單表1000萬,測試命令如下:
#sysbench --mysql-db=db_test \
--mysql-port=3306 --db-driver=mysql --mysql-user=root \
--mysql-password=123456 --test=oltp --oltp-table-size=10000000 \
--num-threads=100 --max-time=900 \
--oltp-test-mode=nontrx --oltp-nontrx-mode=select \
--max-requests=0 --percentile=95 run >> ./sysbench1.log
結論我就不說了,以免誤導觀衆。我只能說:好馬配好鞍,想體驗5.7的能力,硬件一定要跟上。
對於任何新版本數據庫,其實都有類似規律,即,在升級軟件的同時,最好有硬件升級的預算。
ps:在一臺物理服務器上,本人用mysql 5.7.13跑出的qps是29萬多,測試環境如下:
mem:128G
cpu:4*6Cores 1.2GHz
OS:CentOS Linux release 7.0.1406 (Core)
Mysql:5.7.13-enterprise-commercial-advanced-log MySQL Enterprise Server - Advanced Edition (Commercial)