MySQL 效能分析 show profile

2021-08-15 03:45:31 字數 1602 閱讀 5792

1.是什麼

show profile 就是mysql提供的可以用來分析當前會話中語句執行的資源損耗情況。可以用來sql的調優和測量,值得注意的是預設情況下為關閉狀態,如果開啟,儲存當前會話最近的15次執行結果。

2.分析步驟:

(1) 是否支援,看看當前的mysql版本是否支援,預設關閉

:show  variables like 'profiling';

(2) 開啟功能,預設是關閉,使用前需要開啟:

set profiling=on;

(3) 執行sql:select * from emp;

(4) 檢視結果:

用於查詢那條語句執行用了多少時間,找出來最耗時,也就是說出了問題的語句,進行進一步的診斷。

(5) 

定位問題sql可以使用語句,則可以具體查詢某條sql的整體運**況

show profile cpu,block io for query query_id;

定位語句常見引數

show profile 'params' for query query_id;

params:

all                 顯示所有開銷

block io            顯示塊io開銷

context switches    上下文切換相關開銷

cpu                 顯示cpu相關資訊開銷

ipc                 顯示傳送和接收相關開銷資訊

memory              顯示記憶體相關開銷資訊

page faults         顯示頁面錯誤相關開銷資訊

source              顯示source_function,source_file,source_line相關開銷資訊

swaps               顯示交換次數相關開銷資訊

注意的結論:

converting heap to myisam 查詢結果太大,記憶體不夠用了往磁碟上搬

creating tmp table        建立了臨時表

copying to tmp table on disk    記憶體中臨時表複製到磁碟,比較危險,開銷大

locked                    存在表鎖

例如:show profile cpu,block io for query 3;

(6) 一般性建議:

① 對於單鍵索引,盡量選擇針對當前query過濾性更好的索引;

② 在選擇組合索引的時候,當前query中過濾性最好的字段在索引字段順序中,位置越靠前越好;

③ 在選擇組合索引的時候,盡量選擇可以能夠包含當前query中的where字句中更多字段的索引;

④ 盡可能通過分析統計資訊和調整query的寫法來達到選擇合適索引的目的。

mysql 效能分析 Mysql效能分析

優化mysql資料庫效能的十個引數 1 max connections 允許的同時客戶的數量。增加該值增加 mysqld 要求的檔案描述符的數量。這個數字應該增加,否則,你將經常看到 too many connections 錯誤。預設數值是100,我把它改為1024 2 record buffer...

mysql效能分析方法 mysql 效能分析方法

1.explain分析法 explain 分析查詢語句 1 id列數字越大越先執行,如果說數字一樣大,那麼就從上往下依次執行 2 select type查詢型別 primary dependent subquery等 3 table表名 4 type 從上到下效能依次下降 system 表中只有一行...

mysql 效能分析 mysql效能分析工具

一 expalin 在sql語句之前加上explain關鍵字就可以獲取這條sql語句執行的計畫 那麼返回的這些欄位是什麼呢?我們先關心一下比較重要的幾個字段 1.select type 查詢型別 1 簡單查詢,沒有union和子查詢 2 priamry 主查詢,有union或子查詢的最外層查詢 3 ...