MySQL Show Profile

1、show profile 是什么?

Show profile 是mysql 提供可以用來分析當前會話中語句執(zhí)行的資源消耗情況??梢杂糜趕ql 調優(yōu)的測量。

-- 默認情況下,參數(shù)處于關閉狀態(tài),并保存最近15次的運行結果。
show variables like 'profiling%';
-- 開啟profile
set profiling=on;
set profiling_history_size=50;

2、診斷sql

show profiles;
show profile cpu, block io for query 問題sql數(shù)字號碼;
show profile all for query 144;

-- 日常開發(fā)需要注意的結論:
converting HEAP to MyISAM : 查詢結果太大,內存都不夠用了,往磁盤上搬了;
creating tmp table :創(chuàng)建臨時表,拷貝數(shù)據(jù)到臨時表,然后再刪除;
copying to tmp table on disk :把內存中臨時表復制到磁盤,危險?。?!
locked

注:以下四個中若出現(xiàn)一個或多個,表示sql 語句 必須優(yōu)化。

type: 
  ALL --顯示所有的開銷信息 
  BLOCK IO --顯示塊IO相關開銷 
  CONTEXT SWITCHES --上下文切換相關開銷 
  CPU --顯示CPU相關開銷信息 
  IPC --顯示發(fā)送和接收相關開銷信息 
  MEMORY --顯示內存相關開銷信息 
  PAGE FAULTS --顯示頁面錯誤相關開銷信息 
  SOURCE --顯示和Source_function,Source_file,Source_line相關的開銷信息 
  SWAPS --顯示交換次數(shù)相關開銷的信息
  Status : sql 語句執(zhí)行的狀態(tài)
  Duration: sql 執(zhí)行過程中每一個步驟的耗時
  CPU_user: 當前用戶占有的cpu
  CPU_system: 系統(tǒng)占有的cpu
  Block_ops_in : I/O 輸入
  Block_ops_out : I/O 輸出

總結:

show profile默認是關閉的,并且開啟后只存活于當前會話,也就說每次使用前都需要開啟。
通過show profiles查看sql語句的耗時時間,然后通過show profile命令對耗時時間長的sql語句進行診斷。
注意show profile診斷結果中出現(xiàn)相關字段的含義,判斷是否需要優(yōu)化sql語句。
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • show profile是mysql提供的可以用來分析當前會話中sql語句執(zhí)行的資源消耗情況的工具。 1.查看Sh...
    JuMinggniMuJ閱讀 336評論 0 0
  • 一、Show Profile MySQL提供可以用來分析當前會話中語句執(zhí)行的資源消耗情況,用于SQL的調優(yōu)的測量 ...
    紫荊秋雪_文閱讀 385評論 0 0
  • 我是黑夜里大雨紛飛的人啊 1 “又到一年六月,有人笑有人哭,有人歡樂有人憂愁,有人驚喜有人失落,有的覺得收獲滿滿有...
    陌忘宇閱讀 8,831評論 28 54
  • 信任包括信任自己和信任他人 很多時候,很多事情,失敗、遺憾、錯過,源于不自信,不信任他人 覺得自己做不成,別人做不...
    吳氵晃閱讀 6,361評論 4 8
  • 怎么對待生活,它也會怎么對你 人都是哭著來到這個美麗的人間。每個人從來到塵寰到升入天堂,整個生命的歷程都是一本書,...
    靜靜在等你閱讀 5,281評論 1 6

友情鏈接更多精彩內容