答案:通过检查并设置slow_query_log参数可开启MySQL慢查询日志。先用SHOW VARIABLES命令查看状态,若未开启则动态设置全局变量或修改my.cnf配置文件,添加slow_query_log、long_query_time等参数,重启MySQL服务后验证并查看日志内容以优化SQL性能。

在 MySQL 中开启慢查询日志可以帮助你识别执行效率低下的 SQL 语句,从而优化数据库性能。下面介绍如何正确启用和配置慢查询日志。
1. 检查是否已开启慢查询日志
登录到 MySQL 命令行后,运行以下命令查看当前慢查询日志状态:
SHOW VARIABLES LIKE 'slow_query_log';SHOW VARIABLES LIKE 'long_query_time';
如果 slow_query_log 的值为 OFF,说明尚未开启。而 long_query_time 表示执行时间超过多少秒的查询会被记录(默认通常是 10 秒)。
2. 动态开启慢查询日志(临时生效)
可以在不重启 MySQL 的情况下临时开启慢查询日志:
SET GLOBAL slow_query_log = 'ON';SET GLOBAL long_query_time = 2;
SET GLOBAL slow_query_log_file = '/var/log/mysql/mysql-slow.log';
注意:这种方式在 MySQL 重启后会失效。建议同时在配置文件中设置以保证持久化。
3. 修改配置文件永久开启(推荐方式)
编辑 MySQL 配置文件,通常位于:
- Linux: /etc/my.cnf 或 /etc/mysql/my.cnf
- Windows: my.ini
在 [mysqld] 节点下添加或修改以下内容:
[mysqld]slow_query_log = ON
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 2
log_queries_not_using_indexes = ON
参数说明:
- slow_query_log:启用慢查询日志
- slow_query_log_file:指定日志文件路径,确保目录存在且 MySQL 有写入权限
- long_query_time:设定慢查询阈值(单位:秒)
- log_queries_not_using_indexes:记录未使用索引的查询,便于优化
4. 重启 MySQL 并验证
保存配置文件后,重启 MySQL 服务使更改生效:
sudo systemctl restart mysql再次登录 MySQL,运行:
SHOW VARIABLES LIKE 'slow_query_log';确认返回值为 ON,表示已成功启用。
5. 查看慢查询日志内容
可以直接查看日志文件内容:
tail -f /var/log/mysql/mysql-slow.log日志中会记录查询耗时、执行时间、是否使用索引等信息,可用于分析性能瓶颈。
基本上就这些。只要配置好参数并确保文件路径权限正确,慢查询日志就能正常记录,帮助你持续优化 SQL 性能。










