1. 慢查询日志介绍
MySQL数据库中的慢查询日志是一种记录在MySQL数据库中执行时间超过指定时间的查询(或命令)的日志。当MySQL数据库中查询的时间超过了指定时间以后,数据库会把执行时间较长的SQL语句记录到慢查询日志中。
对于开发人员而言,慢查询日志是一个非常实用的工具,通过慢查询日志可以快速定位数据库中的慢查询并进行优化,提高MySQL数据库的执行效率。
2. 开启慢查询日志
2.1 慢查询日志的开启参数
MySQL数据库中默认是不开启慢查询日志的,要开启慢查询日志需要修改MySQL的配置文件my.cnf。
打开my.cnf文件,找到 [mysqld] 段落,在其中添加如下记录:
#开启慢查询日志
slow_query_log=ON
#定义记录慢查询的时间阈值,单位:秒
long_query_time=2
#设置 MySQL 记录慢查询日志的路径
log-slow-queries=/var/log/mysql/mysql-slow.log
参数解释:
slow_query_log=ON
:开启慢查询日志。
long_query_time=2
:定义开始记录慢查询的时间,例如这里设置的是 2 秒。表示如果同样的一个查询在 2 秒内没有执行完毕,那么这个查询的相关信息就会被记录到慢查询日志里。
log-slow-queries=/var/log/mysql/mysql-slow.log
:指定 MySQL 记录慢查询日志的路径。可以根据自己的需要设定路径,这里示例为 /var/log/mysql/mysql-slow.log。
2.2 慢查询日志的启动方式
修改完my.cnf文件后,需要重启MySQL数据库才能生效。执行以下命令重启MySQL数据库:
service mysql restart
修改my.cnf之后,也可以使用 SET GLOBAL 命令临时开启或关闭慢查询日志。例如:
SET GLOBAL slow_query_log=ON; -- 开启慢查询日志
SET GLOBAL slow_query_log=OFF; -- 关闭慢查询日志
2.3 慢查询日志的使用
重新启动MySQL后,MySQL开始记录符合条件的慢查询,在指定的路径下生成慢查询日志文件,可以使用以下命令查看日志文件内容:
# 切换到MySQL的日志文件目录下
cd /var/log/mysql
# 使用cat命令查看日志文件内容
cat mysql-slow.log
慢查询日志文件的内容一般包括:
时间戳
执行该查询的 MySQL 用户
查询的详细信息
查询的总执行时间
通过以上信息,可以定位到MySQL数据库中耗时较长的SQL命令,并进行优化。