mysql 腳本性能分析

1.首先打開mysql的命令窗口

2.把profile功能打開,該功能的作用就是記錄所有操作的性能統計,輸入命令如下:

SET PROFILING=1;

3.  運行需要分析的sql如:

select * from t_test;

可以再執行其他的sql

4.查詢目前記錄到的profile

SHOW PROFILES;

這時就會顯示出profile 記錄下來的記錄如下圖:

如上圖所示第一列查詢的生成的ID,第二列爲花費時間,第三列爲執行的腳本

5.查詢對應腳本的執行時間

SHOW PROFILE CPU,BLOCK IO FOR QUERY 1;

其中query 1 對應就是query_id 爲1 的執行腳本 

對應的它的性能如下:

mysql profile

把sql 執行和個階段的時間花費列個清單,如圖上所示爲執行個查詢所經歷的階段有下面幾個

1.開始階段,這個階段就是準備執行的參數等

2.檢查用戶的執行權限

3.打開表

4.初始化

5.檢查系統鎖

6.優化腳本

7統計信息

8.準備階段-生成執行計劃

9.執行腳本

10.發送數據到客戶端

11.結束

12.查詢結束

13.關閉表

14.清除臨時數據

15。關閉表

16.釋放鎖

17。清理

這個過程只能說執行sql會包含的所有階段,各個階段所花費的時間,可以根據這些數據分析sql的性能慢在哪一塊,還可以對比同一個功能,不同sql實現時所產生的IO情況(第五六列Blocks_ops_in,Blocks_ops_out)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章