1. 程式人生 > 實用技巧 >《高效能MySQL》學習筆記——第二章 MySQL基準測試

《高效能MySQL》學習筆記——第二章 MySQL基準測試

第二章 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 基準測試案例

略。有需要的可以參考書中的測試案例去做基準測試。