总字符数: 2.22K
代码: 1.43K, 文本: 0.48K
预计阅读时间: 8 分钟
前言
MySQL
的慢查询日志是MySQL
提供的一种日志记录,它用来记录在MySQL
中响应时间超过阀值(long_query_time
,单位:秒)的SQL
语句.默认情况下,MySQL
不启动慢查询日志.本文简单介绍如何开启慢查询日志,如何用mysqldumpslow
分析慢查询.
参数说明
1 | slow_query_log #慢查询开启状态,ON开启,OFF关闭 |
配置开启慢查询
编辑MySQL
配置文件my.cnf
如果不知道my.cnf
文件在哪可以用find
命令查找:find / -name my.cnf
在[mysqld]
字段下加入:
1 | long_query_time=1 #表示记录查询超过1s的sql |
注意:慢查询的日志记录文件对于mysql
用户必须可写!!!
1 | MariaDB [(none)]> show variables like 'slow_query%'; |
测试
1 | MariaDB [(none)]> select sleep(2); |
1 | [root@VM-8-7-centos ~]# cat /var/lib/mysql/slow_queries.log |
删除慢查询日志
慢查询日志的删除方法与通用日志的删除方法是一样的.可以使用mysqladmin
命令来删除.也可以使用手工方式来删除.mysqladmin
命令的语法如下mysqladmin -uroot -p flush-logs
执行该命令后,命令行会提示输入密码.输入正确密码后,将执行删除操作.新的慢查询日志会直接覆盖旧的查询日志,不需要再手动删除. 数据库管理员也可以手工删除慢查询日志,删除之后需要重新启动MySQL
服务.
通用查询日志和慢查询日志都是使用这个命令,使用时一定要注意,一旦执行这个命令,通用查询日志和慢查询日志都只存在新的日志文件中.如果需要备份旧的慢查询日志文件,必须先将旧的日志改名,然后重启MySQL
服务或执行mysqladmin
命令