Mysql 慢查询日志的相关参数设定及统计

慢查询日志配置

slow_query_log

GLOBAL 级配置,配置是否开启慢查询日志。

-- 查看是否开启慢查询日志 1 开启 0 关闭
SELECT @@GLOBAL.slow_query_log;
+-------------------------+
| @@GLOBAL.slow_query_log |
+-------------------------+
|                       1 |
+-------------------------+

-- 配置慢查询日志开启状态
SET @@GLOBAL.slow_query_log = 0
SET @@GLOBAL.slow_query_log = 1

slow_query_log_file

GLOBAL 级配置,配置记录慢查询sql的日志文件。

-- 查看慢查询日志的存储文件
SELECT @@GLOBAL.slow_query_log_file;
+-----------------------------------------+
| @@GLOBAL.slow_query_log_file            |
+-----------------------------------------+
| /usr/local/mysql/var/localhost-slow.log |
+-----------------------------------------+

-- 设定慢查询日志的存储文件
SET @@GLOBAL.slow_query_log_file = "/usr/local/mysql/var/mysql-3306-slow.log";

慢查询时间配置

long_query_time

SESSION | GLOBAL 级配置。可以单独的为当前会话设定慢查询sql(秒)的时间的阈值,也可以全局的设定。

当前会话

-- 查看当前会话的慢查询时间
SELECT @@long_query_time;
+-------------------+
| @@long_query_time |
+-------------------+
|          3.000000 |
+-------------------+

-- 配置当前会话的慢查询时间(秒)
SET @@long_query_time = 3;

全局配置

-- 查看当前会话的慢查询时间
SELECT @@GLOBAL.long_query_time;
+-------------------+
| @@long_query_time |
+-------------------+
|          3.000000 |
+-------------------+

-- 配置当前会话的慢查询时间(秒)
SET @@GLOBAL.long_query_time = 3;

慢查询状态统计

Slow_queries

SESSION | GLOBAL 级状态统计,可以统计当前会话或全局慢查询日志的量。

当前会话

SHOW STATUS LIKE 'Slow_queries';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Slow_queries  | 3     |
+---------------+-------+

全局统计

SHOW GLOBAL STATUS LIKE 'Slow_queries';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Slow_queries  | 4     |
+---------------+-------+

配置参数同样可以在 mysql 配置文件中的 [mysqld] 段中全局配置

my.cnf 配置

[mysqld]
slow_query_log = 1
slow_query_log_file = /usr/local/mysql/var/mysql-3306-slow.log

long_query_time = 3

相关推荐