慢日志

慢日志

1、将MySQL服务器中影响数据库性能的相关SQL语句记录到日志文件中

2、通过对这些特殊的SQL语句进行分析和改进,提高数据库的性能。

默认情况下,MySQL 数据库并不启动慢查询日志,需要我们手动来设置这个参数,当然,如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志或多或少会带来一定的性能影响。慢查询日志支持将日志记录写入文件,也支持将日志记录写入数据库表。

配置慢日志

#在配置文件添加
[root@db03 ~]# vim /etc/my.cnf
#开启慢查询
slow_query_log = on
#慢查询中记录没有使用索引的query
log_queries_not_using_indexes=on
#返回较慢的日志mysql5.6版本以上,取消了参数log-slow-queries,更改为slow-query-log-file 
slow_query_log_file=/tmp/slow.log
#慢查询时间,这里为1秒,超过1秒会被记录
long_query_time=1

[root@db03 ~]# systemctl restart mysqld

#查看是否开启
mysql> show variables like '%slow_query_log%';
+---------------------+---------------+
| Variable_name       | Value         |
+---------------------+---------------+
| slow_query_log      | ON            |
| slow_query_log_file | /tmp/slow.log |
+---------------------+---------------+
2 rows in set (0.00 sec)

#测试慢日志
mysql> select sleep(2);
+----------+
| sleep(2) |
+----------+
|        0 |
+----------+
1 row in set (2.00 sec)

[root@db03 ~]# cat /tmp/slow.log 
/usr/local/mysql/bin/mysqld, Version: 5.7.10-log (MySQL Community Server (GPL)). started with:
Tcp port: 3306  Unix socket: /tmp/mysql.sock
Time                 Id Command    Argument
# Time: 2021-10-20T01:30:17.096130Z
# User@Host: root[root] @ localhost []  Id:     2
# Query_time: 2.001499  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 0
SET timestamp=1634693417;
select sleep(2);

posted @ 2021-10-20 09:33  泽野  阅读(125)  评论(0编辑  收藏  举报