SQL效能分析
●SQL執行頻率
MySQL客戶端連線成功後,透過show[session | global]status命令可以提供伺服器狀態資訊。透過如下指令,可以檢視當前資料庫的insert、update、delete、select的訪問頻次:
show globa status like 'Com_______';檢視當前資料庫的全域性SQL語句的訪問頻次
●慢查詢日誌
慢查詢日誌記錄了所有執行時間超過指定引數(long_query_time,單位:秒 ,預設10秒)的所有SQL語句的日誌。
MySQL的慢查詢日誌預設沒有開啟,需要在MySQL的配置檔案(/etc/my.cnf)中配置如下:
#開啟MySQL慢日誌查詢開關
slow_query_long=1
#設定慢日誌的時間為2秒,SQL語句執行時間超過2秒,就會被視為慢查詢,記錄慢查詢日誌
long_query_time=2
●profile詳情
show profiles 能夠在做SQL最佳化時幫助我們瞭解時間都耗費到哪裡去了。
透過have_profiling引數,能夠看到當前MySQL是否支援profile操作:
select @@have_profiling;
預設profiling是關閉的,可以透過set語句在session/globa級別開啟profiling:
set profiling = 1;