Show Profile

一、是什麼:是mysql提供能夠用來分析當前會話中語句執行的資源消耗狀況。能夠用於SQL的調優的測量html

二、官網:http://dev.mysql.com/doc/refman/5.7/en/show-profile.htmlmysql

三、默認狀況下,參數處於關閉狀態,並保存最近15次的運行結果sql

四、分析步驟spa

(1)是否支持,看看當前的mysql版本是否支持3d

  Show variables like 'profiling';
  默認是關閉,使用前須要開啓code

  

(2)開啓功能,默認是關閉,使用前須要開啓htm

  show variables like 'profiling';
  set profiling=1;blog

  

(3)運行SQL 內存

  select * from emp group by id%10 limit 150000;資源

  select * from emp group by id%20  order by 5

(4)查看結果,show profiles;

   

(5)診斷SQL,show profile cpu,block io for query  n  (n爲上一步前面的問題SQL數字號碼);

   

  參數備註

type:  
 | 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

相關文章
相關標籤/搜索