當(dāng)感到sql查詢過慢的時候,我們一般有兩種查看方法
- explain 執(zhí)行計劃,可以查看單條sql語句的具體執(zhí)行過程
- 開啟mysql的慢查詢?nèi)罩竟δ?br>
下面,主要闡述的就是mysql的慢查詢啟用和分析方法
(mysql version is 5.6)
開啟慢查詢
開啟慢查詢分為兩種方法
查詢狀態(tài) show variables like '%slow_query_log%;
慢查詢狀態(tài)
- 臨時啟用,直接使用sql 配置
set global slow_query_log=1;
slow_query_log_file
是默認(rèn)的慢查詢存儲的位置,可以更改
開啟之后 - 用就啟用,在
my.cnf
文件中配置,有則改,無則添加配置項
slow_query_log =1
slow_query_log_file=/var/log/mysql/mysql_slow_query.log
怎么篩選較慢的sql語句呢
mysql 有個配置項叫
long_query_time
可以精確到微秒,通過設(shè)置其值,我們可以定義超過多長時間為慢,默認(rèn)為10s
.
可以使用show variables like '%long_query_time%;
來查看其值
默認(rèn)值
設(shè)置 long_query_time
的值
set global long_query_time=4;
使用show global variables like 'long_query_time'
來查看設(shè)置之后的狀態(tài)
改變之后
接下來就可以使用了
使用之前,先重新鏈接一次
使用select sleep(5);
測試
查看日志
- 可以直接查看日志文件
sudo less /var/lib/mysql/winlans-PC-slow.log
- 使用mysql慢日志分析工具
sudo mysqldumpslow
,輸出如圖
慢查詢分析結(jié)果
好像差不多了,如果有什么不足,后續(xù)慢慢補(bǔ)吧