萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> MySQL slow_query_log慢查詢日志配置詳解

MySQL slow_query_log慢查詢日志配置詳解

顧名思義,慢查詢日志中記錄的是執行時間較長的query,也就是我們常說的slow query,通過設--log-slow-queries[=file_name]來打開該功能並設置記錄位置和文件名,默認文件名為hostname-slow.log,默認目錄也是數據目錄

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。

copyright © 萬盛學電腦網 all rights reserved