MySQL 5.5 开启慢查询日志(slow log)及查看方法
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:使用正则表达式进行模式匹配,忽略大小写。
以下是几个典型的使用场景示例:
- 找出执行次数最多的前 10 个 SQL:
mysqldumpslow -s c -t 10 /path/to/slow.log - 找出按记录数排序的前 10 条 SQL:
mysqldumpslow -s r -t 10 /path/to/slow.log - 包含特定关键字(如 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 数据库维护的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









