首頁  >  文章  >  資料庫  >  mysql慢查詢日誌:mysql提供的一種記錄日誌的功能

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

php是最好的语言
php是最好的语言原創
2018-07-30 14:07:291689瀏覽

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慢查詢日誌分析

使用mysqldumpslow和mysqlsla分析mysql慢查詢日誌

相關影片:

MySQL資料管理之備份恢復案例解析影片教學

以上是mysql慢查詢日誌:mysql提供的一種記錄日誌的功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn