本文最后更新于 5536 天前,其中的信息可能已经有所发展或是发生改变。
一直以来积累了很多对MySQL优化的心得和经验,计划通过写日志的方式一步一步写出来分享给大家。
MySQL优化的第一步应该做的就是排查问题,找出瓶颈,而通常情况下的瓶颈和问题都需要通过观察MySQL的运行情况来进行分析,《查看MySQL运行状况》这篇文章罗列了一些常用的查看MySQL运行信息的方式。
而对于大多数的程序员来说,最容易发现并解决的问题就是MySQL的慢查询或者没有利用索引的查询,所以这里主要给大家介绍如何利用官方的mysqldumpslow工具方便的查看这些信息。如何打开MySQL的慢查询,请点击《打开MySQL的慢查询记录》。
mysqldumpslow命令
/path/mysqldumpslow -s c -t 10 /database/mysql/slow-log
这会输出记录次数最多的10条SQL语句,其中:
- -s, 是表示按照何种方式排序,c、t、l、r分别是按照记录次数、时间、查询时间、返回的记录数来排序,ac、at、al、ar,表示相应的倒叙;
- -t, 是top n的意思,即为返回前面多少条的数据;
- -g, 后边可以写一个正则匹配模式,大小写不敏感的;
比如
/path/mysqldumpslow -s r -t 10 /database/mysql/slow-log
得到返回记录集最多的10个查询。
/path/mysqldumpslow -s t -t 10 -g “left join” /database/mysql/slow-log
得到按照时间排序的前10条里面含有左连接的查询语句。
小结
使用mysqldumpslow命令可以非常明确的得到各种我们需要的查询语句,对MySQL查询语句的监控、分析、优化是MySQL优化的第一步,也是非常重要的一步。
很专业的术语,消灭零回复!
啥时候更新啦,终于看到第一篇不再是蛙泳教学了
不过我也终于通过那篇日志知道我第一次游泳的时候为啥同事笑我了
因为我的手脚是一起动的。。。。
博主好,开源吧申请贵站友情链接
http://www.kaiyuanba.cn
找了半天没找到贵站联系方式,有意向的话请发email吧
我的email:kaiyuanba@163.com
@开源吧, 我回复一下你应该就能收到邮件了吧 🙂
ac、at、al、ar,表示相应的倒叙;//这句话错了吧!!!、
这是我help出来的东西:
al: average lock time
ar: average rows sent
at: average query time
倒序是这个:
-r reverse the sort order (largest last instead of first)
你的文档写的不错 很多人看的。所以纠正下 别误人了。。。
是有问题的,应该是对应的平均值,不是什么倒叙。
请问mysqldumpslow 在phpmyadmin中 为什么用不起来呢?
像我的博客http://www.myusbkey.net/做prestashop模板的,都不知道怎么用mysqldumpslow分析。。求助
prestashop 插件这样的站 还可以优化么?
慢查询会造成死锁
al: average lock time a表示的是平均,而不是倒序!可以看mysqldumpslow –help
谢谢楼主的分享,已经收藏您的网站