mysql分析 Mysql分析 profile詳解

2021-10-18 02:26:54 字數 2029 閱讀 4067

一。前言

當我們要對某一條sql的效能進行分析時,可以使用它。

profiling是從 mysql5.0.3版本以後才開放的。

啟動profile之後,所有查詢包括錯誤的語句都會記錄在內。

關閉會話或者set profiling=0 就關閉了。(如果將profiling_history_size引數設定為0,同樣具有關閉mysql的profiling效果。)

此工具可用來查詢sql執行狀態,system lock和table lock 花多少時間等等,

對定位一條語句的i/o消耗和cpu消耗 非常重要。(sql 語句執行所消耗的最大兩部分資源就是io和cpu)

--在mysql5.7之後,profile資訊將逐漸被廢棄,mysql推薦使用performance schema

二。流程

簡易流程大概如下:

set profiling=1; //開啟分析

run your sql1;

run your sql2;

show profiles;//檢視sql1,sql2的語句分析

show profilefor query 1; //檢視sql1的具體分析

show profileall for query 1; //檢視sql1相關的所有分析【主要看i/o與cpu,下邊分析中有各項意義介紹】set profiling=0; //關閉分析

三。含義分析

上圖中橫向欄意義

"status": "query end", 狀態

"duration": "1.751142", 持續時間

"cpu_user": "0.008999", cpu使用者

"cpu_system": "0.003999", cpu系統

"context_voluntary": "98", 上下文主動切換

"context_involuntary": "0", 上下文被動切換

"block_ops_in": "8", 阻塞的輸入操作

"block_ops_out": "32", 阻塞的輸出操作

"messages_sent": "0", 訊息發出

"messages_received": "0", 訊息接受

"page_faults_major": "0", 主分頁錯誤

"page_faults_minor": "0", 次分頁錯誤

"swaps": "0", 交換次數

"source_function": "mysql_execute_command", 源功能

"source_file": "sql_parse.cc", 原始檔

"source_line": "4465" 源**行

上圖中縱向欄意義

starting:開始

checking permissions:檢查許可權

opening tables:開啟表

init : 初始化

system lock :系統鎖

optimizing : 優化

statistics : 統計

preparing :準備

executing :執行

sending data :傳送資料

sorting result :排序

end :結束

query end :查詢 結束

closing tables : 關閉表 /去除tmp 表

freeing items : 釋放物品

cleaning up :清理

一般情況下,常用以下語句也就夠了 :

mysql->show profile cpu,block io io for query 2;

mysql 效能分析 Mysql效能分析

優化mysql資料庫效能的十個引數 1 max connections 允許的同時客戶的數量。增加該值增加 mysqld 要求的檔案描述符的數量。這個數字應該增加,否則,你將經常看到 too many connections 錯誤。預設數值是100,我把它改為1024 2 record buffer...

mysql 語句分析 MySQL語句執行分析

今天客戶那邊遇到乙個問題 多選檔案進行操作,資料量一大後台處理就特別慢,瀏覽器顯示504超時。為了驗證問題是否出在sql語句,所以用以下方法來分析 查詢sql執行記錄 explain 分析 mysql 語句執行時間 下面會分別介紹三個方法的開啟方法。查詢sql執行記錄 查詢日誌功能是否開啟 show...

mysql查詢日誌分析 mysql日誌分析

日誌檔案 log 就是乙個跟蹤記錄的列表,它可以協助我們時刻掌握系統及應用服務的動作狀態,在故障排查的時候提供最詳細準確地資訊,幫助我們快速查詢原因,減少我們憑主觀的經驗去猜測,這樣的答案更具有說服力,機器通常是不會撒謊的。任何的系統,無論是作業系統 資料庫 應用伺服器他們都會有自己的log檔案,而...