mysql的show profile使用总结
目錄
前言:
1.分析步驟
2.總結
前言:
Show Profile是mysql提供的可以用來分析當前會話中sql語句執行的資源消耗情況的工具,可用于sql調優的測量。默認情況下處于關閉狀態,并保存最近15次的運行結果。
1.分析步驟
#1.開啟Show Profile功能,默認該功能是關閉的,使用前需開啟。
#2.根據MySQL高級知識(十)——批量插入數據腳本中的數據腳本向tb_emp_bigdata表中插入50w條數據。然后執行如下查詢語句:
select *from tb_emp_bigdata group by id%10 limit 150000; select *from tb_emp_bigdata group by id%20 order by 5;#3.通過show profiles查看結果。
#4.使用show profile對sql語句進行診斷。
show profile cpu,block io for query Query_ID;/*Query_ID為#3步驟中show profiles列表中的Query_ID*/比如執行:show profile cpu,block io for query 15;
#5.show profile的常用查詢參數。
①ALL:顯示所有的開銷信息。
②BLOCK IO:顯示塊IO開銷。
③CONTEXT SWITCHES:上下文切換開銷。
④CPU:顯示CPU開銷信息。
⑤IPC:顯示發送和接收開銷信息。
⑥MEMORY:顯示內存開銷信息。
⑦PAGE FAULTS:顯示頁面錯誤開銷信息。
⑧SOURCE:顯示和Source_function,Source_file,Source_line相關的開銷信息。
⑨SWAPS:顯示交換次數開銷信息。
#6.日常開發需注意的結論。
①converting? HEAP to MyISAM:查詢結果太大,內存不夠,數據往磁盤上搬了。
②Creating tmp table:創建臨時表。先拷貝數據到臨時表,用完后再刪除臨時表。
③Copying to tmp table on disk:把內存中臨時表復制到磁盤上,危險!!!
④locked。
如果在show profile診斷結果中出現了以上4條結果中的任何一條,則sql語句需要優化。
2.總結
#1.show profile默認是關閉的,并且開啟后只存活于當前會話,也就說每次使用前都需要開啟。
#2.通過show profiles查看sql語句的耗時時間,然后通過show profile命令對耗時時間長的sql語句進行診斷。
#3.注意show profile診斷結果中出現相關字段的含義,判斷是否需要優化sql語句。
#4.可更多的關注MySQL官方文檔,獲取更多的知識。
?
總結
以上是生活随笔為你收集整理的mysql的show profile使用总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: order by、group by也会使
- 下一篇: 2019建中台,2020拆中台,为什么很