1.什么是慢查詢?nèi)罩?/span>
MySQL的慢查詢?nèi)罩臼荕ySQL提供的一種日志記錄,它用來記錄在MySQL中響應時間超過閥值的語句,具體指運行時間超過long_query_time值的SQL,會被記錄到慢查詢?nèi)罩局校?span style="font-size: 14pt">long_query_time的默認值為10,意思是運行10秒以上的語句。默認情況下,MySQL數(shù)據(jù)庫沒有開啟慢查詢?nèi)罩荆枰覀兪謩觼碓O置相關參數(shù)slow_query_log。當然,如果不是調(diào)優(yōu)需要的話,一般不建議啟動該參數(shù),因為開啟慢查詢?nèi)罩緯蚨嗷蛏賻硪欢ǖ男阅苡绊憽B樵內(nèi)罩局С謱⑷罩居涗泴懭胛募?/span>
?
2.開啟慢查詢?nèi)罩?/strong>
2.1查看參數(shù)
SHOW VARIABLES LIKE '%slow_query_log%'
?如果是off,需要手動開啟
?
2.2開啟
SET GLOBAL slow_query_log = 1
?
2.3查看時長閥值
SHOW VARIABLES LIKE '%long_query_time%'
?默認是10秒,但是我們不會允許sql這么長的時間,一般需要調(diào)小
?
2.4設置時長閥值
SET GLOBAL long_query_time = 2
這里設置好了,打開新的連接窗口查看,值才會更新
?
3.查詢當前系統(tǒng)中有多少條慢查詢記錄
show global status like '%Slow_queries%';
?
4.慢查詢?nèi)罩韭窂?/span>
SHOW VARIABLES LIKE '%slow_query_log_file%'
?
5.日志分析工具mysqldumpslow
在生產(chǎn)環(huán)境中,如果要手工分析慢查詢?nèi)罩?,查找、分析SQL,顯然是個體力活,MySQL提供了日志分析工具mysqldumpslow。
?
5.1語法格式
mysqldumpslow [ OPTS... ] [ LOGS... ] -- 后跟參數(shù)以及l(fā)og文件的絕對地址;
?
5.2參數(shù)
1)s: 是表示按照何種方式排序;
2)c: 訪問次數(shù)
3)l: 鎖定時間
4)r: 返回記錄
5)t: 查詢行數(shù)
6)al:平均鎖定時間
7)ar:平均返回記錄數(shù)
8)at:平均查詢時間
9)t:即為返回前面多少條的數(shù)據(jù);
10)g:后邊搭配一個正則匹配模式,大小寫不敏感的;
?
5.3示例
1)得到返回記錄集最多的10個SQL
mysqldumpslow -s r -t 10 /var/lib/mysql/atguigu-slow.log
2)得到訪問次數(shù)最多的10個SQL
mysqldumpslow -s c -t 10 /var/lib/mysql/atguigu-slow.log
3)得到按照時間排序的前10條里面含有左連接的查詢語句
mysqldumpslow -s t -t 10 -g "left join" /var/lib/mysql/atguigu-slow.log
4)另外建議在使用這些命令時結合 | 和more 使用 ,否則有可能出現(xiàn)爆屏情況
mysqldumpslow -s r -t 10 /var/lib/mysql/atguigu-slow.log | more
?
?
?
本文摘自 :https://www.cnblogs.com/