Mysql之開啟慢查詢日誌

2021-09-25 07:35:20 字數 2018 閱讀 5049

一. 簡介

開啟慢查詢日誌,可以讓mysql或者mariadb記錄執行時超過指定時間的sql語句。

二. 開啟慢查詢日誌設定

1. 在mariadb的配置檔案/etc/my.cnf(centos系統是該檔案,其他系統請自行尋找mysql或mariadb的配置檔案)中的[mysqld]下面新增以下語句。重啟資料庫即可。

[mysqld]

slow_query_log = 1 # 開啟慢日誌查詢

long_query_time = 2 # 把查詢時間超過2秒的定義為慢查詢,也可以設定為1秒

log_output = 'table' # 儲存日誌到mysql資料的slow_log表

#slow_query_log_file=/var/log/mariadb/slow_query_log.txt #將日誌儲存帶本地檔案中

2. 引數說明:slow_query_log:表示是否開啟慢查詢日誌。

long_query_time:最長執行時間。表示執行超過該值的sql語句都會被定義為慢查詢語句。該值預設為10秒。

log_output:表示當慢查詢日誌開啟後,以哪種方式存放,log_output可以設定為4種值,「file」、「table」、「file,table」、「none」。

「file「:表示慢查詢日誌存放在指定的檔案中。

「table」:表示慢查詢日誌存放在mysql庫中的slow_log表中,如下圖所示。一般建議設定為該值。

「file,table」:表示將滿查詢日誌同時存放於指定的檔案盒slow_log表中。但是這樣的設定有可能會造成一定的io壓力。

「none」:表示不記錄查詢日誌,即使slow_query_log設定為on,如果log_ouput設定為none,也不會記錄慢查詢日誌。

slow_query_log_file:當log_output設定為使用檔案記錄慢查詢日誌時,也就是設定為「file」或者「file,table」時,該引數指定將慢查詢日誌儲存到哪個日誌檔案。預設的慢查詢日誌檔名為「主機名-slow.log」,其位置為datadir引數所對應的目錄位置。

3. 檢視配置是否成功

資料庫重啟後,進入mysql,輸入以下命令檢視慢查詢日誌是否開啟成功。

三、測試執行一條超過設定時間的sql語句:

mariadb [(none)]> select sleep(3);
然後在資料庫的mysql庫中的slow_log表可以看到相應的記錄

四,命令列修改

命令列查詢慢日誌設定:

show variables  like '%slow_query_log%';

show variables like 'long_query_time%';

命令列修改慢日誌設定:

set global show_query_log=0;

set global long_query_time=3;

注意: set 命令只對當前資料庫生效,如果mysql重啟後則會失效。如果要永久生效,就必須修改配置檔案my.cnf(其它系統變數也是如此)

其他更詳細的關於mysql慢查詢日誌見:

mysql開啟慢查詢日誌 MySQL慢日誌體系建設

慢查詢日誌是mysql提供的一種日誌記錄,用來記錄在mysql中響應時間超過閾值的sql語句,在很大程度上會影響資料庫整體的效能,是mysql優化的乙個重要方向。在58的雲db平台建設中,慢sql系統作為乙個非常重要功能模組,不僅是dba日常運維使用,我們也希望通過該功能可以協助開發人員更快速定位業...

開啟mysql慢查詢日誌

檢視配置 檢視慢查詢時間 show variables like long query time 預設10s 檢視慢查詢配置情況 show status like slow queries 檢視慢查詢日誌路徑 show variables like slow 修改配置檔案 在 etc my.ini中...

開啟mysql慢查詢日誌

檢視配置 檢視慢查詢時間 show variables like long query time 預設10s 檢視慢查詢配置情況 show status like slow queries 檢視慢查詢日誌路徑 show variables like slow 修改配置檔案 在my.ini中加上下面兩...