1. 程式人生 > >mysql show prifile基本詳解

mysql show prifile基本詳解

show profile
預設情況下,引數處於關閉狀態,並儲存最近15次的執行結果
檢視profile是否開啟
  show variables like '%profi%';
開啟profile記錄功能
  set profiling=on; #永久生效需要在配置檔案my.cnf修改
檢視執行了哪些命令
  show profiles;
根據上一條命令結果的Query_ID檢視某條query的執行過程
  show profile cup,block io for query 11 #11 是Query_ID

show profile用法
type
  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 把記憶體中臨時表複製到磁碟,危險!!!
  locked


全域性查詢日誌
  配置啟用
    general_log=1#開啟
    general_log_file=/path/logfile#記錄日誌的路徑
    log_output=file#輸出格式,file,table等
    開啟後,你所編寫的SQL語句都將會記錄到mysql庫裡的general_log表裡
    可以用select * from mysql.general_log檢視
  命令啟用
    set general_log=1;
  永遠不要在生產環境開啟這個功能