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 ...