By using this site, you agree to the Privacy Policy and Terms of Use.
接受
智诚云集
  • 首页
  • 互联网
  • 分享
  • 记录
  • 互联网
    • Blog Index
    • Search Page
    • 404 Page
  • 联系
阅读: Windows&Linux开启Mysql慢查询日志记录的方法
SUBSCRIBE
智诚云集智诚云集
Font ResizerAa
  • 云服务器推荐
  • 腾讯云
  • 阿里云
  • 京东云
Search
  • Home
  • Home
  • Blog
  • Blog
  • Categories
    • Technology
    • Travel
    • Lifestyle
    • Market
    • Innovate
    • Insurance
  • Categories
    • Technology
    • Travel
    • Lifestyle
    • Market
    • Innovate
    • Insurance
  • Bookmarks
  • Bookmarks
  • More Foxiz
    • Blog Index
    • Sitemap
  • More Foxiz
    • Blog Index
    • Sitemap
  • Contact
  • Contact
Have an existing account? 登录
关注我们
© Foxiz News Network. Ruby Design Company. All Rights Reserved.
分享

Windows&Linux开启Mysql慢查询日志记录的方法

智诚云集 - Xyok.Cn
最后更新: 2025年12月6日 下午9:21
智诚云集 - Xyok.Cn
15 Min Read
分享
分享

对于跟踪有问题的查询来说mysql慢查询日志是非常有用的衣柜功能,它可以为我们分析当前程序里有很耗费资源的sql语句,那么你知道如何打开mysql慢查询日志吗?

其实打开mysql的慢查询日志很简单,只需要在mysql的配置文件里(windows系统是my.ini,linux系统是my.cnf)的[mysqld]下面加上如下代码:


 log-slow-queries=/var/lib/mysql/slowquery.log
long_query_time=2

注:
log-slow-queries 设置把日志写在那里,为空的时候,系统会给慢查询日志赋予主机名,并被附加slow.log. /var/lib/mysql/slowquery.log为日志存放的文件的位置,一般这个目录要有mysql的运行帐号的可写权限,一般都将这个目录设置为mysql的数据存放目录
long_query_time=2中的2表示查询超过两秒才记录.
如果设置了参数log-long-format,那么所有没有使用索引的查询也将被记录。在文件my.cnf或my.ini中加入下面这一行可以记录这些查询
这是一个有用的日志。它对于性能的影响不大(假设所有查询都很快),并且强调了那些最需要注意的查询(丢失了索引或索引没有得到最佳应用)
# Time: 070927 8:08:52
# User@Host: root[root] @ [192.168.0.20]
# Query_time: 372 Lock_time: 136 Rows_sent: 152 Rows_examined: 263630
select id, name from manager where id in (66,10135);
这是慢查询日志中的一条,用了372秒,锁了136秒,返回152行,一共查了263630行
如果日志内容很多,用眼睛一条一条去看会累死,mysql自带了分析的工具,使用方法如下:
命令行下,进入mysql/bin目录,输入mysqldumpslow –help或–help可以看到这个工具的参数,主要有
Usage: 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 (t, at, l, al, r, ar etc), ‘at’ is default
-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 scrīpt)
-l don’t subtract lock time from total time
-s,是order的顺序,说明写的不够详细,俺用下来,包括看了代码,主要有
c,t,l,r和ac,at,al,ar,分别是按照query次数,时间,lock的时间和返回的记录数来排序,前面加了a的时倒叙
-t,是top n的意思,即为返回前面多少条的数据
-g,后边可以写一个正则匹配模式,大小写不敏感的
mysqldumpslow -s c -t 20 host-slow.log
mysqldumpslow -s r -t 20 host-slow.log
上述命令可以看出访问次数最多的20个sql语句和返回记录集最多的20个sql。
mysqldumpslow -t 10 -s t -g “left join” host-slow.log
这个是按照时间返回前10条里面含有左连接的sql语句。

标签:HostlinuxMySQLmysqldrootUserwindows慢日志
分享这篇文章
Facebook Email Copy Link Print
By智诚云集 - Xyok.Cn
关注:
分销:阿里云、腾讯云、百度云、GoDaddy、景安云、Linode云服务器产品。
上一篇 浏览网页或使用软件出现404 NOT FOUND报错提示原因
下一篇 360家庭防火墙路由器浏览网站报毒&非法网页解决方法

You Might Also Like

分享

为什么苏州被网友戏称为「许州」?

“许州”是由中国药科…

9 Min Read
站推荐

[站推荐]新浪网黑猫投诉平台-tousu.sina.com.cn

黑猫投诉是新浪旗下的…

2 Min Read
分享

高仿价值399元Discuz极简论坛手机模板 正式版(wubian_app004)免费下载

价值399元Disc…

10 Min Read
分享

Nvidia GeForce显卡更新537.13版本CSGO黑屏解决办法

目前已测试更改ste…

3 Min Read
智诚云集智诚云集
关注我们
© Foxiz News Network. Ruby Design Company. All Rights Reserved.
Welcome Back!

Sign in to your account

Username or Email Address
Password

Lost your password?