查詢是否開啟慢SQL日志
show variables like '%slow_query_log';?
開啟慢查詢日志
set global slow_query_log='ON';
可以通過修改MySQL的配置my.cfg
或者my.ini
永久生效
slow_query_log=ON # 開啟慢查詢日志開關
slow_query_log_file=/var/lib/mysql/alvin-slow.log # 慢查詢日志的目錄和文件名信息 long_query_time=3 # 設置慢查詢的閾值為3秒,超出此設定值的SQL即被記錄到慢查詢日志 log_output=FILE
查看慢查詢日志位置
show variables like '%slow_query_log_file%'
修改慢查詢日志位置
set global slow_query_log_file = '/usr/local/mysql/data/alvin-slow-slow.log';
查詢當前系統中有多少條慢查詢記錄
SHOW GLOBAL STATUS LIKE '%Slow_queries%';?
mysqldumpslow
?命令的具體參數如下:
- -a: 不將數字抽象成N,字符串抽象成S
- -s: 是表示按照何種方式排序:
- c: 訪問次數
- l: 鎖定時間
- r: 返回記錄
- t: 查詢時間
- al:平均鎖定時間
- ar:平均返回記錄數
- at:平均查詢時間 (默認方式)
- ac:平均查詢次數
- -t: 即為返回前面多少條的數據;
- -g: 后邊搭配一個正則匹配模式,大小寫不敏感的;
Ps:
Query_time:實際執行的時間,Lock_time:如果加了鎖的話,等到鎖所消耗的時間,Row_sent:拿到了多少條數據, Rows_examined:為了得到想要的結果操作了多少條數據。