mysql 慢查詢日志打開的方法很簡單,我們只要設置set global long_query_time=0.000001;,這要就是毫秒級別以下的慢日志記錄.
MySQL慢日志往往是大家定位SQL性能問題,通過慢日志分析可以調整索引使用,這是使用最多的一個功能.
目前MySQL也支持毫秒級別以下的慢日志記錄,這個功能其實有很多用處,這里大概給大家講解一下,該功能開啟參數:long_query_time.
查看慢查詢是否開啟,代碼如下:
- mysql> show variables like '%slow%';
- +---------------------+-------------------------+
- | Variable_name | Value |
- +---------------------+-------------------------+
- | log_slow_queries | ON |
- | slow_launch_time | 2 |
- | slow_query_log | ON |
- | slow_query_log_file | D:/log/slow.txt | --Vevb.com
- +---------------------+-------------------------+
其中,各參數說明如下:
slow_launch_time:慢查詢超過的執行時間值
slow_query_log:是否打開慢查詢日志功能
show_query_log_file:慢查詢日志目錄
通常使用這個參數的幾個環境,需要得到一個業務的所有SQL可以在測試環境中MySQL的long_query_time設置為0.000001,代碼如下:
set global long_query_time=0.000001;
flush logs;
也可以直接在找到 MySQL 的配置文件,my.cnf(Windows 為 my.ini),在 MySQL 下增加下面幾行:
log-slow-queries ="D:/xampp/mysql/long.txt"
long_query_time = 1
log-slow-queries=/var/lib/mysql/slowquery.log,指定日志文件存放位置,可以為空,系統會給一個缺省的文件host_name-slow.log.
long_query_time=2 (記錄超過的時間,默認為10s)
log-queries-not-using-indexes (log下來沒有使用索引的query,可以根據情況決定是否開啟)
log-long-format (如果設置了,所有沒有使用索引的查詢也將被記錄)
上面的 2 是查詢的時間,即當一條 SQL 執行時間超過2秒的時候才記錄,/usr/var/slowquery.log 是日志記錄的位置.
然后重新啟動MySQL服務
2、MySQL 配置文件的位置
Windows:Windows 的配置文件為 my.ini,一般在 MySQL 的安裝目錄下或者 c:Windows 下。
Linux:Linux 的配置文件為 my.cnf,一般在 /etc 下.
這樣基本上所有對MySQL請求的sql都會記錄到慢日志中,通過日志分析可以全面了解一下SQL樣式及整體運行調用分布,重要的庫可以考慮開啟該參數記錄相應的log用于審計使用.
同樣對于生產環境,可以通過開啟該參數,定期收集一下線上的SQL運行情況,做一些對比,方便了解目前線上SQL運行的情況,能更供更多的指導,有了慢查詢日志,通過慢查詢日志分析工具很容易得到一份不錯的分析結果.
新聞熱點
疑難解答