mysql开启慢查询日志

https://blog.csdn.net/qq_39291929/article/details/81561388

本方案只适应于小的项目、项目未上线或者紧急情况下可采用这种方式,一旦开启慢日志查询会增加数据库的压力

mysql优化方案:开启慢查询日志(查询sql执行超过一秒以上sql等等)

参数说明:
slow_query_log 慢查询开启状态,ON开启,OFF关闭 
slow_query_log_file 慢查询日志存放的位置(这个目录需要MySQL的运行帐号的可写权限,一般设置为MySQL的数据存放目录)
long_query_time 查询超过多少秒才记录

展示慢查询配置

mysql> show variables like 'slow_query%';
+---------------------------+----------------------------------+
| Variable_name   | Value     |
+-----------------+-----------+
| slow_query_log | OFF |
+-----------------+-----------+
| slow_query_log_file | YH-20161209QIZC-slow.log |
+-----------------+-----------+
 
查看慢查询的时间设置  //默认查询超过10秒才记录
mysql> show variables like 'long_query_time';
+-----------------+-----------+
| Variable_name   | Value     |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+

设置慢查询日志

方法一:全局变量设置(该方式数据库重启全部失效,得重新配置)
将 slow_query_log 全局变量设置为“ON”状态

mysql> set global slow_query_log='ON'; 
设置慢查询日志存放的位置
mysql> set global slow_query_log_file='/usr/local/mysql/data/slow.log';
设置查询超过1秒就记录(如果有时候用命令不起作用,那么需要先关掉mysql客户端,再打开)
mysql> set global long_query_time=1;

方法二:配置文件设置(服务器重启不影响)
修改配置文件my.cnf,在[mysqld]下的下方加入

[mysqld]
slow_query_log = ON
slow_query_log_file = /usr/local/mysql/data/slow.log     //linux
long_query_time = 1

重启MySQL服务
service mysqld restart

测试:
1.执行一条慢查询SQL语句
mysql> select sleep(2);
2.查看是否生成慢查询日志

TCP Port: 3306, Named Pipe: MySQL
Time                 Id Command    Argument
# Time: 2020-09-03T06:43:23.135657Z
# User@Host: mysql[mysql] @ localhost [127.0.0.1]  Id:   222
# Query_time: 2.000171  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 1
use order;
SET timestamp=1599115401;
SELECT SLEEP(2);
原文地址:https://www.cnblogs.com/brxHqs/p/13607477.html