mysql基礎測試

2021-09-25 04:12:00 字數 2748 閱讀 2730

測試原因

為什麼需要做效能測試

測試分類

效能測試的分類

裝置層的測試

業務層測試

資料庫層的測試

mysql測試分類

4小類:

常用的測試工具

針對業務編寫效能測試工具

效能測試衡量指標:

服務響應時間

服務併發性---正在工作中的併發操作,或者是同時工作中的執行緒數或者連線數。例如乙個web站點"同時有50000個使用者"訪問,卻可能只有10--15個併發請求到mysql資料庫,此時併發數只有10--15。

可擴充套件性---------------簡單來說,給系統增加一倍的資源(比如兩倍的cpu數),就可以獲得兩倍的吞吐量。當然,同時效能(響應時間)也必須在可以接受的範圍內。大多數系統是無法做到如此理想的線性擴充套件的。

測試方法

設計基準測試的常見錯誤:

1 測試規劃:

應該建立將引數和結果文件化的規範,每一輪測試都必須進行詳細記錄

2  基準測試應該執行多長時間

乙個簡單的測試規則,就是等系統看起來穩定的時間至少等於系統預熱的時間。

基準測試應該執行足夠長的時間。

如果沒有實際去完成準確完整的基準測試,那麼已經花費的所有時間都是一種浪費。有時候要相信別人的測試結果,這總比做一次半拉子的測試來得到乙個錯誤的結論要好。

3  獲取系統效能和狀態

需要記錄的資料報括系統狀態和效能指標:

使用指令碼對這些資料進行收集。

基於mysql的預設配置的是沒有什麼意義,因為預設配置是基於消耗很少記憶體的極小應用的。

4 執行基準測試並分析結果

自動化基準測試,是個不錯的方案。可以是乙個makefile或者一組指令碼。

要盡可能地使用所有測試過程都自動化,包括資料裝載,系統預熱,執行測試,記錄結果。等。

多次測量

5 繪圖的重要性

通過圖形可以立刻發現一些問題,而這些問題在原始資料中卻很難被注意到。

在執行基準測試的時候要盡可能收集更多的細節資料,然後將資料繪製成圖形,這樣可以幫助快速地發現問題。

gnuplot或者r繪圖;

測試工具

sysbench

sysbench,不僅用來測試資料庫的效能,也可以測試執行資料庫的伺服器的效能。

強烈建議熟悉sysbench測試,在mysql使用者的工具包中,這應該是最有用的工具之一。

sysbench 其他的基準測試,但和資料庫效能沒有直接關係。

tpcc-mysql

tpcc流程更能模擬線上業務

使用該測試工具:需要建立資料和表結構,載入資料,執行測試三個步驟。

benchmark()

mysql的benchmark():可以測試某些特定操作的執行速度。

mysql>

set@input :=

'hello world';

query ok,

0 rows affected (0.00

sec)

mysql

>

select benchmark(1000000,md5(@input

));+

--------------------------------+

| benchmark(1000000,md5(@input)) |+--

------------------------------+|0

|+--------------------------------+

1 row in

set (1.45

sec)

mysql

>

select benchmark(1000000,sha1(@input

));+

---------------------------------+

| benchmark(1000000,sha1(@input)) |+--

-------------------------------+|0

|+---------------------------------+

1 row in

set (1.40 sec)

雖然benchmark()函式用起來很方便,但是不適合用來做真正的基準測試,因為該函式只是簡單地返回伺服器執行表示式的時間,不會涉及分析和開銷,等因素。

而且表示式必須像這個例子一樣包含使用者定義的變數(input),否則會多次執行同樣的表示式會因為系統快取命中而影響結果。

具體測試實踐,請看sysbench實踐,tpcc-mysql實踐;

總結

服務響應時間

服務併發性

設計測試常見錯誤:

測試方法

獲取系統效能和狀態:cpu,io,網路流量,mysql狀態計數器;

執行測試:自動化測試包含:資料裝載,系統預熱,執行測試,記錄結果。

繪圖分析:直觀的發現問題;

測試工具:sysbench,tpcc-mysql,benchmark()

測試小結:

mysql基礎測試 mysql基礎測試

測試原因 為什麼需要做效能測試 模擬比當前系統更高的負載,找出效能瓶頸 重現線上異常 測試不同硬體軟體配置 規劃未來的業務增長 測試分類 效能測試的分類 裝置層的測試 業務層的測試 資料庫層的測試 裝置層的測試 關注哪些指標 伺服器,磁碟效能 磁碟壞塊率 伺服器壽命 業務層測試 針對業務進行測試 資...

MySQL基礎小測試(八)

請利用事務實現在使用者下訂單後,驗證使用者購買的商品數量是否超過了商品的庫存量.商品訂單表 sh order goods如果商品庫存不足,則阻止訂單建立.檢視sh order goods訂單商品表 select id,order id,goods id,goods num from sh order...

mysql基礎測試 mysql學習筆記之基礎測試

10.基礎測試 10.1 sysbench 基準測試 10.1.1 本地安裝 2.安裝依賴包 shell yum install y automake libtool yum install y mysql devel 3.執行安裝 shell cd sysbench autogen.sh conf...