《高效能MySQL》學習筆記——第二章 MySQL基準測試
阿新 • • 發佈:2020-11-07
第二章 MySQL基準測試
基準測試:是針對系統設計的一種壓力測試。
2.1 為什麼需要基準測試
基準測試可以觀察系統中在不同壓力下的行為。有很多用處的可測試點,詳見書中。
2.2 基準測試的策略
略
2.2.1 測試何種指標
-
吞吐量:是指單位時間內事務的處理數。
-
響應時間或延遲:用於測試任務所需的整體時間。根據不同的時間單位可以計算所需的平均響應時間、最小響應時間、最大響應時間的所佔百分比,或者將每次響應時間製作成頻率分佈圖、折線圖等圖表進行分析。
-
併發性:資料庫的併發性和web伺服器的併發性有些差異,web伺服器的併發性指的是可以一段時間內同時處理多少web請求,而資料庫的併發性測試,主要關注於,當併發事務增加時,需要測試的吞吐量是否下降,響應時間是否變長。
-
可擴充套件性:指的是給系統增加一倍的工作,在理想情況下可以使吞吐量增加一倍;或者說給系統增加一倍的資源,就可以獲得兩倍的吞吐量。(這是最理想情況,現實中幾乎達不到,即邊際效益下降)
BENCHMARK(count, expr)函式:用於計算表示式expr共count次,可以用來計時MySQL處理表達式的速度。結果值為0,對於不適當的引數(例如NULL或負重複計數),則為NULL。因此SELECT的結果不重要,而是要看執行花費的時間。下面這個例子可以發現MD5演算法比SHA1演算法速度更快。
mysql> SELECT BENCHMARK(1000000, MD5('test')); +---------------------------------+ | BENCHMARK(1000000, MD5('test')) | +---------------------------------+ | 0 | +---------------------------------+ 1 row in set (0.14 sec) mysql> SELECT BENCHMARK(1000000, SHA1('test')); +----------------------------------+ | BENCHMARK(1000000, SHA1('test')) | +----------------------------------+ | 0 | +----------------------------------+ 1 row in set (0.47 sec)
http_load:web伺服器測試工具,略。
2.5 基準測試案例
略。有需要的可以參考書中的測試案例去做基準測試。