MySQL 开启慢查询日志

本文详细介绍如何通过配置MySQL慢查询日志来优化数据库性能,包括开启慢查询、设置日志位置及调整查询时间标准的方法。

开启 MySQL 慢查询日志

开启mysql的慢查询日志,可以记录查询超过指定时间的sql语句,可以方便更好的优化数据库系统的性能。

一、参数说明

slow_query_log: 慢查询日志开启状态
slow_query_log_file: 慢查询日志存放位置
long_query_time: 查询超过多少秒才记录

二、设置步骤

1、查询相关参数配置
mysql> show variables like 'slow_query%';
+---------------------+------------------------------------------------------------------------+
| Variable_name       | Value                                                                  |
+---------------------+------------------------------------------------------------------------+
| slow_query_log      | OFF                                                                    |
| slow_query_log_file | F:\fantsey\javaTools\mysql-5.7.23-winx64\data\DESKTOP-S224PAK-slow.log |
+---------------------+------------------------------------------------------------------------+
2 rows in set
mysql> show variables like 'long_query_time';
+-----------------+-----------+
| Variable_name   | Value     |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
1 row in set

可以看到默认慢查询是没有打开的,即OFF,而且日志文件也有一个默认的,并且慢查询定义的时间为10秒。

2、开启慢查询并配置
方法一:全局变量设置

将slow_query_log全局变量设置为"ON"状态
mysql> set global slow_query_log='ON';
设置慢查询日志存放位置
mysql> set global slow_query_log_file='F:/fantsey/javaTools/mysql-5.7.23-winx64/data/slow_query.log';
设置慢查询时间标准(一般设置为1秒)
mysql> set global long_query_time=1;

ps: 第三步设置,会在下次会话才生效,如果在当次会话查询,还是会显示默认的10秒。

方法二: 配置文件设置

直接修改mysql的配置文件,一般为my.cnf, 在[mysqld]下加入如下参数:

[mysqld]
slow_query_log = ON
slow_query_log_file = /var/lib/mysql/logs/slow.log
long_query_time = 1

重启MySQL服务
service mysqld restart

### 如何在 MySQL 8.0 中配置和开启慢查询日志 #### 开启慢查询日志的基础设置 默认情况下,MySQL慢查询日志功能处于关闭状态[^1]。可以通过修改 MySQL 配置文件 `my.cnf` 或者通过动态调整系统变量来启用该功能。 #### 修改配置文件的方法 编辑 MySQL 配置文件 `my.cnf` 并添加或更新以下参数: ```ini [mysqld] slow_query_log = 1 long_query_time = 0.1 slow_query_log_file = /usr/local/mysql/mysql_slow.log ``` 其中: - 参数 `slow_query_log = 1` 表示启用慢查询日志。 - 参数 `long_query_time = 0.1` 定义了超过多少秒的 SQL 查询会被记录到慢查询日志中。 - 参数 `slow_query_log_file` 指定了慢查询日志存储的位置和名称。 完成以上更改后,重启 MySQL 服务使配置生效[^2]。 #### 动态调整系统变量的方式 如果不想立即重启数据库实例,可以使用以下命令动态开启慢查询日志并设置相关参数: ```sql SET GLOBAL slow_query_log = 'ON'; SET GLOBAL long_query_time = 0.1; SET GLOBAL slow_query_log_file = '/usr/local/mysql/mysql_slow.log'; ``` 这些命令会即时生效而无需重启服务器。需要注意的是,这种方式仅适用于当前运行周期,在下次启动时仍需依赖配置文件中的设定[^3]。 #### 查看慢查询日志的状态 确认慢查询日志是否已成功开启以及其具体配置情况,可执行如下SQL语句: ```sql SHOW VARIABLES LIKE 'slow_query%'; ``` 此操作将返回有关慢查询日志的相关信息,包括它是否被激活(`slow_query_log`)及其对应的文件路径(`slow_query_log_file`)[^1]。 #### 查询慢 SQL 日志的内容 为了查看已经被记录下来的较慢 SQL 请求,可以从表 `mysql.slow_log` 中读取数据: ```sql SELECT CONVERT(sql_text USING utf8) AS sql_text FROM mysql.slow_log; ``` 这条指令能够帮助管理员分析哪些查询消耗时间过长从而优化性能。 ### 注意事项 当定义 `long_query_time` 值的时候,请依据实际需求合理选择数值大小;太低可能会导致大量正常范围内的请求也被标记成“缓慢”,增加不必要的负担;太高则可能遗漏一些潜在问题所在之处。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值