一 、設置開啓慢查詢
1.1 如何發現比較慢的sql
使用mysq慢查日誌對有效率問題的sql進行監控
long_query_time: 慢查詢時間,定義超過1秒的查詢計數到變量Slow_queries
slow_query_log: 慢查詢日誌是否開啓
show_query_log_file: 慢查詢日誌路徑
log_queries_not_using_indexes:沒有使用索引的查詢
show variables like ‘%slow_query%’;
set global slow_query_log=on;
set global show_query_log_file =’/home/mysql/sql_log/mysql-show.log’;
set global log_queries_not_using_indexes=on;
set global long_query_time = 1
注意:更新variable值之後,需要重新斷掉mysql,再連接,再進行查詢則顯示更改之後的值
1.2 慢查詢包含的內容
二 、慢查詢日誌分析工具
2.1 mysqldumpslow
mysql 自帶工具
Linux下mysql:
在 windows 下可以在mysql/bin目錄下可以找到 mysqldumpslow.pl 文件,是一個 perl 格式的文件,如下圖:
windows下需要使用perl(Practical Extraction and Report Language:實用報表提取語言)語言:
-h:查詢幫助
perl C:\java\mysql\mysql-8.0.12\bin\mysqldumpslow.pl -s t -a -t 3 C:\java\mysql\mysql-8.0.12\data\CNSHO-HWFSGH2-slow.log
Count:執行次數 Time: 執行時間 Lock: 鎖定時間 Row: 返回行數
將結果集輸出到文件:
perl mysqldumpslow.pl C:\java\mysql\mysql-8.0.12\data\CNSHO-HWFSGH2-slow.log | more
2.2 pt-query-digest
在我的 mysql/bin 文件夾下並沒有 pt-query-digest.pl 文件,所以需要手動下載;
curl -o pt-query-digest.pl https://www.percona.com/get/pt-query-digest
進度變爲100%後即爲下載成功!
perl pt-query-digest.pl C:\java\mysql\mysql-8.0.12\data\CNSHO-HWFSGH2-slow.log | more
overall:總共24條sql,15條不同的