mysql的慢查詢日誌是什嗎?定義:mysql提供的一種記錄日誌的功能,用來記錄mysql相應時間超過long_query_time值的sql語句,long_query_time預設值為10秒,相應時間超過10秒的SQL則會被記錄到日誌中。
1、查看慢日誌功能的狀態,慢日誌功能預設是關閉的
show variables like '%slow_query_log%';
OFF表示慢日誌功能處於關閉狀態,慢日誌記錄儲存在DESKTOP-2331B4V-slow.log檔案中,DESKTOP為本人的電腦名稱。
2、開啟慢日誌功能
set global slow_query_log=1;
然後再查詢慢日誌狀態
狀態為ON,表示慢日誌功能已開啟。
3、查看預設的long_query_time時間
long_query_time為10秒,表示SQ語句超過10秒的才會被記錄到慢日誌中。
4、設定long_query_time時間長度,預設的10秒太長
set global long_query_time=3;
重新開啟一個會話,如果是window系統的話,再重新打卡一個cmd就可以(注意如果還是在設定long_query_time的會話中查詢long_query_time時間長度的話,還是預設的10秒,所以要重啟一個會話),重新查詢long_query_time時間長度
5、類比耗時sql
該sql語句表示查詢了5秒,超出了設定的long_query_time時間長度。然後開啟
DESKTOP-2331B4V-slow.log日誌,內容如下:MySQL, Version: 5.5.60 (MySQL Community Server (GPL)). started with:TCP Port: 3306, Named Pipe: MySQLTime Id Command Argument# Time: 180729 12:52:29# User@Host: root[root] @ localhost [127.0.0.1]# Query_time: 5.005746 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0SET timestamp=1532839949;select sleep(5);
可知,逾時的SQL已經寫進慢日誌中。
慢日誌比較多時,還可以查詢慢日誌中的條數
6、配置
上面的執行個體是用命令進行配置的,如果資料庫重啟後,配置失效。如果想重啟後,配置任然有效,可以在my.ini下的[mysqld]添加配置的命令:
slow_query_log=1slow_query_log_file=d:/mysql/my.loglong_query_time=3long_output=FILE
相關文章:
MySQL慢查詢日誌分析
使用mysqldumpslow和mysqlsla分析mysql慢查詢日誌
相關視頻:
MySQL資料管理之備份恢複案例解析視頻教程