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);