MySQL 5.5 开启慢查询日志(slow log)及查看方法

不晚
不晚
发布时间:2026-10-13 | 5人浏览过
原创

MySQL 的慢查询日志是定位高性能瓶颈的关键工具。在 MySQL 5.5 版本中,可以通过动态参数 SET GLOBAL 快速开启慢日志功能,设置执行时间阈值,并灵活选择将日志输出到文件或数据库表中。配合 mysqldumpslow 命令,管理员可以高效筛选和分析最耗时的 SQL 语句。

配置慢查询日志参数

进入 MySQL 命令行客户端后,可以通过全局变量控制慢查询日志的行为。首先执行以下命令开启日志记录:

set global log_slow_queries = on;

接着设置判定“慢查询”的时间阈值。例如,将阈值设置为 0.2 秒(精确到小数点后一位,代表毫秒级精度下的最小单位),低于此时间的查询不会写入日志:

set global long_query_time = 0.2;

如果希望专门追踪那些没有使用索引的查询(即使它们很快),可以启用该选项:

set global log_queries_not_using_indexes = on;

选择日志存储格式:FILE 与 TABLE

MySQL 支持两种存储慢日志的方式:普通文本文件或专用的系统表。当前默认配置可以通过查询 log_output 变量确认:

show variables like 'log_output';

当返回结果为 file 时,表示慢日志以文本文件形式存储在磁盘上。

若需要将日志存入数据库以便于直接通过 SQL 查询分析,可修改全局变量:set global log_output='table';。此时日志会保存在 mysql.slow_log 表中。

查找慢日志文件位置

在采用文件存储模式(FILE)时,需要知道具体的文件路径才能使用命令行工具分析。执行以下命令即可查看当前服务器慢日志文件的绝对路径:

SHOW VARIABLES LIKE 'slow_query_log_file';

使用 mysqldumpslow 分析慢日志

对于存放在文件中的慢日志,MySQL 提供了 mysqldumpslow 辅助工具。它支持多种排序和过滤方式,常用参数如下:

  • -s:指定排序方式。c 表示按记录次数排序(最高频),t 表示按查询时间排序(最耗时),l 表示按锁定时间,r 表示按返回记录数。加上 a 前缀表示逆序(倒叙)。
  • -t:显示前 N 条结果(top n)。
  • -g:使用正则表达式进行模式匹配,忽略大小写。

以下是几个典型的使用场景示例:

  1. 找出执行次数最多的前 10 个 SQL:
    mysqldumpslow -s c -t 10 /path/to/slow.log
  2. 找出按记录数排序的前 10 条 SQL:
    mysqldumpslow -s r -t 10 /path/to/slow.log
  3. 包含特定关键字(如 left join)且最耗时的 Top 10:
    mysqldumpslow -s t -t 10 -g "left join" /path/to/slow.log

通过上述步骤,即可迅速掌握 MySQL 5.5 的慢查询配置与分析技巧,有效辅助 SQL 性能调优。以上就是 MySQL 5.5 开启慢日志 slow log 方法的详细内容,更多关于 MySQL 数据库维护的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表