slow_query_log是記錄SQL執行超過一定時間的參數。
slow query log相關變量
1、命令行參數:
--log-slow-queries
指定日志文件存放位置,可以為空,系統會給一個缺省的文件host_name-slow.log
2、系統變量
log_slow_queries
指定日志文件存放位置,可以為空,系統會給一個缺省的文件host_name-slow.log
slow_query_log
slow quere log的開關,當值為1的時候說明開啟慢查詢。
slow_query_log_file
指定日志文件存放位置,可以為空,系統會給一個缺省的文件host_name-slow.log
long_query_time
記錄超過的時間,默認為10s
log_queries_not_using_indexes
log下來沒有使用索引的query,可以根據情況決定是否開啟
發現執行時間過長的SQL,有效的改善數據庫的性能時,非常有用的參數。
在這裡介紹MySQL版本5.1以上裡的配置方法。
修改/etc/my.cnf
slow_query_log : 有效(0或者OFF)、無效(1或者ON)
slow_query_log_file : 指定日志文件
long_query_time : 超過指定時間的SQL會記錄到日志文件(默認時間為10秒)
※MySQL5.1可以指定1秒以下的時間。
# vi /etc/my.cnf
[mysqld]
…
slow_query_log = 1
slow_query_log_file = /data/log/mysql/slow_query.log
long_query_time = 5
使用set global
# mysql -u<用戶名> -p <數據庫名>
Enter password: [輸入密碼]
set global slow_query_log = 1;
set global slow_query_log_file = ‘/data/log/mysql/slow_query.log';
set global long_query_time = 5;
配置有效化
重啟MySQL或者set global以後,配置才會有效。
總結
因數據庫的響應慢導致整個系統的響應慢的情況非常多,推薦大家安裝MySQL以後有效化slow_query_log。