mysql慢查詢日志:mysql提供的一種記錄日志的功能

mysql的慢查詢日志是什么?定義:mysql提供的一種記錄日志的功能,用來記錄mysql相應時間超過long_query_time值的sql語句,long_query_time默認值為10秒,相應時間超過10秒的SQL則會被記錄到日志中。

1、查看慢日志功能的狀態,慢日志功能默認是關閉的

?show?variables?like?'%slow_query_log%';

mysql慢查詢日志:mysql提供的一種記錄日志的功能OFF表示慢日志功能處于關閉狀態,慢日志記錄存儲在DESKTOP-2331B4V-slow.log文件中,DESKTOP為本人的計算機名。

2、開啟慢日志功能

set?global?slow_query_log=1;

然后再查詢慢日志狀態
mysql慢查詢日志:mysql提供的一種記錄日志的功能狀態為ON,表示慢日志功能已開啟。

3、查看默認的long_query_time時間
mysql慢查詢日志:mysql提供的一種記錄日志的功能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時長
mysql慢查詢日志:mysql提供的一種記錄日志的功能

5、模擬耗時sql
mysql慢查詢日志:mysql提供的一種記錄日志的功能該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已經寫進慢日志中。

慢日志比較多時,還可以查詢慢日志中的條數
mysql慢查詢日志:mysql提供的一種記錄日志的功能

6、配置

上面的實例是用命令進行配置的,如果數據庫重啟后,配置失效。如果想重啟后,配置任然有效,可以在my.ini下的[mysqld]添加配置的命令:

slow_query_log=1slow_query_log_file=d:/mysql/my.loglong_query_time=3long_output=FILE

相關文章:

MySQL慢查詢日志分析

MySQL慢查詢日志分析

相關視頻:

MySQL慢查詢日志分析

? 版權聲明
THE END
喜歡就支持一下吧
點贊8 分享