mysql慢查詢怎麼用 MYSQL 慢查詢使用方法

2021-10-18 22:25:40 字數 2270 閱讀 7650

分析mysql語句查詢效能的問題時候,可以在mysql記錄中查詢超過指定時間的語句,我們將超過指定時間的sql語句查詢稱為「慢查詢」。mysql自帶的慢查詢分析工具mysqldumpslow可對慢查詢日誌進行分析:主要功能是, 統計sql的執行資訊,其中包括 :

出現次數(count),

執行最長時間(time),

累計總耗費時間(time),

等待鎖的時間(lock),

傳送給客戶端的行總數(rows),

掃瞄的行總數(rows),

使用者以及sql語句本身(抽象了一下格式, 比如 limit 1, 20 用 limit n,n 表示).

1、開啟慢sql的配置

1.1       liunx 系統 在mysql配置檔案my.cnf中增加

slow_query_log

slow_query_log_file=/usr/local/mysql/logs/slow.log

long_query_time=0.1

slow_query_log  這是乙個布林型變數,預設為真。沒有這變數,資料庫不會列印慢查詢的日誌。

log-slow-log_file=/export/servers/mysql/bin/mysql_slow.log (指定日誌檔案存放位置,可以為空,系統會給乙個預設的檔案host_name-slow.log)

long_query_time=0.1(記錄超過的時間,預設為10s),與dba溝通,效能測試分析問題時可以將該值設為0.1即100毫秒,這樣分析的粒度更詳細。

備選 :log-queries-not-using-indexes (log下來沒有使用索引的query,可以根據情況決定是否開啟)。log-long-format (如果設定了,所有沒有使用索引的查詢也將被記錄)

注: 配置完成後,重新mysql服務配置才能生效。

2、慢查詢開啟與關閉

2.1       配置完成,連線資料庫檢查慢查詢日誌是否開啟:

命令如下:mysql> show variables like 『%slow_query_log%』;

2.2       如果沒有開啟,請開啟,slow_query_log

開啟命令:mysql> set @@global.slow_query_log = on;

關閉命令:mysql> set @@global.slow_query_log = off;

2.3      再次檢查是否開啟成功

mysql> show variables like 『%slow_query_log%』;

2.4       檢查目錄中是否生成檔案

/mysql目錄下是否存在mysql_slow.log

[root@localhost mysql]# ls -l mysql_slow.log

3、慢查詢日誌分析

3.1  linux系統:

使用mysql自帶命令mysqldumpslow檢視

常用命令,通過 mysqldumpslow –help檢視

-s,是order的排序,主要有 c,t,l,r和ac,at,al,ar,分別是按照query次數,時間,lock的時間和返回的記錄數來排序

-a,倒序排列

-t,是top n的意思,即為返回前面多少條的資料

-g,後邊可以寫乙個正則匹配模式,大小寫不敏感的

例如:mysqldumpslow -s c -t 20 host-slow.log

mysqldumpslow -s r -t 20 host-slow.log

上述命令分別可以看出訪問次數最多的20個sql語句和返回記錄集最多的20個sql。

mysqldumpslow -t 10 -s t -g 「left join」 host-slow.log這個是按照時間返回前10條裡面含有左連線的sql語句。

圖例中的命令:mysqldumpslow –s at- t 50 host-slow.log 顯示出耗時最長的50個sql語句的執行資訊

以count: 32  time=0.26s (8s)  lock=0.00s (0s)  rows=10.0 (320), wos_20120719[wos_20120719]@2host 為例:

count: 32  該sql總共執行32次

time = 0.26s (8s)  平均每次執行該sql耗時0.26秒,總共耗時32(次)*0.26(秒)=8秒。

lock=0.00s(0s)   lock時間0秒

rows =10.0(320)  每次執行sql影響資料庫表中的10行記錄,總共影響 10(行)*32(次)=320行記錄

簡單分享 歡迎拍磚

mysql慢查詢怎麼用 mysql慢查詢

1.慢查詢有什麼用?它能記錄下所有執行超過long query time時間的sql語句,幫你找到執行慢的sql,方便我們對這些sql進行優化.2.如何開啟慢查詢?首先我們先檢視mysql伺服器的慢查詢狀態是否開啟.執行如下命令 我們可以看到當前log slow queries狀態為off,說明當前...

mysql 慢查詢 MySQL慢查詢

一 簡介 開啟慢查詢日誌,可以讓mysql記錄下查詢超過指定時間的語句,通過定位分析效能的瓶頸,才能更好的優化資料庫系統的效能。二 引數說明 slow query log 慢查詢開啟狀態 slow query log file 慢查詢日誌存放的位置 這個目錄需要mysql的執行帳號的可寫許可權,一般...

用tail f檢視mysql慢查詢日誌

輸入 tail f tmp slowquery.log 我們可以通過tail f檢視日誌檔案。tail f var lib mysql slow queries.log time 110107 16 22 11 user host root root localhost query time 9.8...