慢查詢日誌開啟分析

Krisji發表於2020-02-27

主要記錄下慢查詢的分析過程

mysql 開啟慢查詢日誌

1 修改配置檔案my.cnf,在[mysqld]下的下方加入
[mysqld]
slow_query_log = ON
slow_query_log_file = /usr/local/mysql/data/slow.log
long_query_time = 1

2 殺死重啟
service mysqld restart
可以手動啟動
/usr/sbin/mysqld  --defaults-file=/etc/my.cnf --user=root

3 檢視引數配置是否成功
mysql> show variables like 'slow_query%'; +---------------------+--------------------------------+
| Variable_name       | Value                          |
+---------------------+--------------------------------+
| slow_query_log      | ON                             |
| slow_query_log_file | /usr/local/mysql/data/slow.log |
+---------------------+--------------------------------+
 mysql> show variables like 'long_query_time'; +-----------------+----------+
| Variable_name   | Value    |
+-----------------+----------+
| long_query_time | 1.000000 |
+-----------------+----------+

安裝分析工具pt-query-digest

pt-query-digest是用於分析mysql慢查詢的一個工具,它可以分析binlog、General log、slowlog,也可以透過SHOWPROCESSLIST或者透過tcpdump抓取的MySQL協議資料來進行分析。可以把分析結果輸出到檔案中,分析過程是先對查詢語句的條件進行引數化,然後對引數化以後的查詢進行分組統計,統計出各查詢的執行時間、次數、佔比等,可以藉助分析結果找出問題進行最佳化。

1 直接分析慢查詢檔案
pt-query-digest  slow.log > slow_report.log

2 分析最近12小時內的查詢
pt-query-digest  --since=12h  slow.log > slow_report2.log

3 分析指定時間範圍內的查詢
pt-query-digest slow.log --since '2016-10-17 09:30:00' --until '2016-10-17 10:00:00' > > slow_report3.log

4 分析指含有select語句的慢查詢
pt-query-digest--filter '$event->{fingerprint} =~ m/^select/i' slow.log> slow_report4.log
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章