千家信息网

MySQL如何开启慢查询日志

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章给大家分享的是有关MySQL如何开启慢查询日志的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。mysql优化方案:开启慢查询日志(查询sql执行超过一秒以上sql等等
千家信息网最后更新 2026年10月31日MySQL如何开启慢查询日志

这篇文章给大家分享的是有关MySQL如何开启慢查询日志的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

mysql优化方案:开启慢查询日志(查询sql执行超过一秒以上sql等等)

开启慢查询日志:可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能。

参数说明:

slow_query_log 慢查询开启状态,ON开启,OFF关闭

slow_query_log_file 慢查询日志存放的位置(这个目录需要MySQL的运行帐号的可写权限,一般设置为MySQL的数据存放目录)

long_query_time 查询超过多少秒才记录

重点说明:开启慢日志版本要高,低版本无法支持,本次版本是:5.7.20

SELECT VERSION(); 查询版本号

该版本默认情况下已开启慢日志

mysql> show databases;mysql> use test;   //指定一个数据库mysql> show variables like 'slow_query%';+---------------------------+----------------------------------+| Variable_name   | Value     |+-----------------+-----------+| slow_query_log | ON |+-----------------+-----------+| slow_query_log_file | YH-20161209QIZC-slow.log |+-----------------+-----------+mysql> show variables like 'long_query_time';+-----------------+-----------+| Variable_name   | Value     |+-----------------+-----------+| long_query_time | 10.000000 |+-----------------+-----------+//默认查询超过10秒才记录

设置慢查询日志

方法一:全局变量设置(该方式数据库重启全部失效,得重新配置)

将 slow_query_log 全局变量设置为"ON"状态

mysql> set global slow_query_log='ON';

设置慢查询日志存放的位置

mysql> set global slow_query_log_file='/usr/local/mysql/data/slow.log'; //linuxmysql> set global slow_query_log_file='D:\\mysq\data\slow.log';         //windows

设置查询超过1秒就记录(如果有时候用命令不起作用,那么可以关闭再打开)

mysql> set global long_query_time=1;

方法二:配置文件设置(服务器重启不影响)

修改配置文件my.cnf,在[mysqld]下的下方加入

[mysqld]slow_query_log = ONslow_query_log_file = /usr/local/mysql/data/slow.log     //linuxlong_query_time = 1

3.重启MySQL服务

service mysqld restart

测试

1.执行一条慢查询SQL语句

mysql> select sleep(2);

2.查看是否生成慢查询日志

这里可以看出是那个sql以及查询时间

如果日志存在,MySQL开启慢查询设置成功!

附:日志分析工具mysqldumpslow

在生产环境中,如果要手工分析日志,查找、分析SQL,显然是个体力活,MySQL提供了日志分析工具mysqldumpslow

查看mysqldumpslow的帮助信息:

[root@DB-Server ~]# mysqldumpslow --helpUsage: mysqldumpslow [ OPTS... ] [ LOGS... ] Parse and summarize the MySQL slow query log. Options are   --verbose    verbose  --debug      debug  --help       write this text to standard output   -v           verbose  -d           debug  -s ORDER     what to sort by (al, at, ar, c, l, r, t), 'at' is default                al: average lock time                ar: average rows sent                at: average query time                 c: count                 l: lock time                 r: rows sent                 t: query time    -r           reverse the sort order (largest last instead of first)  -t NUM       just show the top n queries  -a           don't abstract all numbers to N and strings to 'S'  -n NUM       abstract numbers with at least n digits within names  -g PATTERN   grep: only consider stmts that include this string  -h HOSTNAME  hostname of db server for *-slow.log filename (can be wildcard),               default is '*', i.e. match all  -i NAME      name of server instance (if using mysql.server startup script)  -l           don't subtract lock time from total time

-s, 是表示按照何种方式排序,

  • c: 访问计数

  • l: 锁定时间

  • r: 返回记录

  • t: 查询时间

  • al:平均锁定时间

  • ar:平均返回记录数

  • at:平均查询时间

-t, 是top n的意思,即为返回前面多少条的数据;

-g, 后边可以写一个正则匹配模式,大小写不敏感的;

比如

得到返回记录集最多的10个SQL。

mysqldumpslow -s r -t 10 /database/mysql/mysql06_slow.log

得到访问次数最多的10个SQL

mysqldumpslow -s c -t 10 /database/mysql/mysql06_slow.log

得到按照时间排序的前10条里面含有左连接的查询语句。

mysqldumpslow -s t -t 10 -g "left join" /database/mysql/mysql06_slow.log

另外建议在使用这些命令时结合 | 和more 使用 ,否则有可能出现刷屏的情况。

mysqldumpslow -s r -t 20 /mysqldata/mysql/mysql06-slow.log | more

的文章就介绍到这了,更多相关MySQL开启慢查询日志内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

感谢各位的阅读!关于"MySQL如何开启慢查询日志"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

查询 日志 时间 数据 版本 分析 文章 内容 数据库 更多 语句 配置 位置 全局 变量 命令 工具 性能 情况 文件 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州淘业互联网络科技 互联网科技工作委员会主任 智能科技公司是互联网公司吗 易互联网科技有限公司 科技服务与互联网 互联网 科技创新 九亚互联网科技 易通互联网络科技有限公司 融势互联网科技 米客互联网科技 银川新华互联网科技职业技术培训学校图片 重庆威客帮互联网科技 茂名市互联网科技产业园 湖南一路畅行互联网科技 工业互联网等科技实现智能化赋能 科技大学互联网 银行科技岗属于互联网吗 云南省自由互联网科技有限公司 张家口科技产业互联网平台 知域互联网科技有限公司官网 中国互联网科技工作委员会毛军 美国互联网黑科技 博兴的互联网电子科技公司 移动互联网科技公司 佛山市翊博互联网络科技有限公司 用友工业互联网科技发展 银行科技岗属于互联网吗 江苏互联网智能科技产品出厂价 万物互联网智能科技 好易买互联网科技
0