一、查看慢查询的各种信息
1.1 查看是否开启慢查询
mysql> show variables like 'slow_query%';
+---------------------+---------------------------------------+
| Variable_name | Value |
+---------------------+---------------------------------------+
| slow_query_log | OFF |
| slow_query_log_file | /var/lib/mysql/mysql-master1-slow.log |
+---------------------+---------------------------------------+
2 rows in set (0.00 sec)
参数说明:
- slow_query_log 慢查询开启状态 OFF或0为关闭 ON或1为开启
- slow_query_log_file 慢日志存放的目录(该目录必须为mysql用户有可写权限)
1.2 查询当前会话的慢日志时间阈值
mysql> show variables like 'long_query_time%';
+-----------------+----------+
| Variable_name | Value |
+-----------------+----------+
| long_query_time | 5.000000 |
+-----------------+----------+
1 row in set (0.00 sec)
参数说明:
- long_query_time sql语句超时时间,默认为10秒
1.3 查询全局的时间阈值
mysql> show global variables like 'long_query_time%';
+-----------------+----------+
| Variable_name | Value |
+-----------------+----------+
| long_query_time | 5.000000 |
+-----------------+----------+
1 row in set (0.00 sec)
1.4 查询截至到现在共有多少条慢查询
mysql> show global status like '%Slow_queries%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Slow_queries | 0 |
+---------------+-------+
1 row in set (0.00 sec)
二、开启慢查询
2.1 命令行方式开启慢查询(重启失效)
2.1.1 修改慢查询日志存放的位置
mysql> set global slow_query_log_file=/var/log/mysql;
Query OK, 0 rows affected (0.08 sec)
2.1.2 修改sql语句超时时间
mysql> set global long_query_time=1;
Query OK, 0 rows affected (0.00 sec)
2.1.3 开启慢查询
mysql> set global slow_query_log=1;
Query OK, 0 rows affected (0.11 sec)
2.2 永久开启慢查询(修改配置文件)
[root@localhost ~]# vim /etc/my.cnf #我的配置文件是在/etc下
[mysqld]
# 开启慢查询日志
slow_query_log=1
# 设置阈值 `0.01` 秒
long_query_time=0.01
# 设置慢查询日志存放位置
log_queries_not_using_indexes=ON
slow_query_log_file="/var/log/mysql/mysql_slow.log"
注意:重启服务生效