mysql 5 0 慢日誌 MySQL的慢查詢日誌

2021-10-18 08:37:05 字數 1989 閱讀 2255

慢查詢日誌是什麼?

慢查詢日誌是mysql提供的一種專門記錄sql執行時間超過預先設定好閾值的語句等資訊

慢查詢日誌怎麼開啟?

慢查詢日誌是預設關閉的!

可以通過命令進行檢視慢日誌的狀態

show variables like '%slow_query_log%'; #檢視慢日誌狀態

開啟慢日誌的命令(1代表開啟,0代表關閉)

set global slow_query_log=1;

#開啟慢日誌,只對本次有效,重啟之後還是關閉的。

如果想要永久生效的話,就需要修改my.cnf檔案

在[mysqld]下新增

slow_query_log=1slow_query_log_file=/var/lib/mysql/node-slow.log #這個代表的是慢日誌檔案存放的路徑

慢日誌不在調優的時候一般是關閉的,因為開啟慢日誌多多少少會降低效率。

什麼樣的查詢語句才能稱為慢查詢呢?慢日誌會記錄什麼樣的sql呢?

這個是由引數long_query_time控制的,此值的預設值為10秒。

當某一條語句的執行時間大於這個引數值的時候,(等於的話不會被記錄),就會被慢日誌給記錄下來

show variables like 'long_query_time%'; #檢視設定的時間閾值

修改long_query_time的值的方法

set global long_query_time=3; #設定慢查詢時間的閾值為3秒

注意:執行完上面的語句後,在此進行檢視的時候,會發現值沒有變過來,

這時候需要重新開乙個會話,或者斷開連線之後重連,更或者換一條命令進行查詢,就可以看到你修改後的值了

當然你也可以使用配置my.cnf檔案的方式進行修改,在[mysqld]下新增如下引數(前題是)

slow_query_log=1slow_query_log_file=/var/lib/mysql/node-slow.log#這個代表的是慢日誌檔案存放的路徑

long_query_time=3;

log_output=file

模擬一條慢查詢語句

select sleep(4);#在這條sql執行期間,睡眠4秒

執行完成之後,開啟慢日誌檔案進行檢視,如下圖所示

如果我們想要統計一共記錄了多少條慢sql語句,可以使用如下命令

日誌分析工具mysqldumpslow

常用屬性

s:表示按照何種方式排序

c:訪問次數

l:鎖定時間

r:返回記錄

t:查詢時間

al:平均鎖定時間

ar:平均返回記錄數

at:平均查詢時間

t:即為返回前面多少條的資料:

g:後邊搭配乙個正則匹配模式,大小寫不敏感的

舉個例子:

mysqldumpslow -s r -t 10 /var/lib/mysql/node-slow.log

得到返回記錄集最多的10條sql

這些是本人學習mysql優化,對於慢查詢日誌的總結,不足之處,請大家指出,謝謝

Mysql5 0 儲存過程

stored routines require the proc table in the mysql database.mysql.proc 心得 1.建立儲存過程之前,使用delimiter 來定義語句結束符,建立完成後,還原語句結束符 delimiter 由於mysql預設以 為分隔符,則過程...

Mysql5 0 儲存過程

stored routines require the proc table in the mysql database.mysql.proc 心得 1.建立儲存過程之前,使用delimiter 來定義語句結束符,建立完成後,還原語句結束符 delimiter 由於mysql預設以 為分隔符,則過程...

Mysql5 0 儲存過程

stored routines require the proc table in the mysql database.mysql.proc 心得 1.建立儲存過程之前,使用delimiter 來定義語句結束符,建立完成後,還原語句結束符 delimiter 由於mysql預設以 為分隔符,則過程...