MySQL中mysqldumpslow分析查询慢sql语句
发布:smiling 来源: PHP粉丝网 添加日期:2014-10-15 10:04:56 浏览: 评论:0
现在很多程序员在设计数据库与开发程序时都不会考虑到大负载,有时一点数据量就出现了卡机,这样越到后面越难查了,下面我们来给出一个mysql自带的工具mysqldumpslow来帮你查出查询慢的sql语句.
对于大多数的程序员来说,最容易发现并解决的问题就是MySQL的慢查询或者没有利用索引的查询,所以这里主要给大家介绍如何利用官方的mysqldumpslow工具方便的查看这些信息,如何打开MySQL的慢查询.
MySQL的慢查询记录
SHOW STATUS:直接在命令行下登陆MySQL运行SHOW STATUS;查询语句,详细如下.
同样的语句还有SHOW VARIABLES;,SHOW STATUS是查看MySQL运行情况,和上面那种通过pma查看到的信息基本类似.
SHOW VARIABLES:SHOW VARIABLES是查看MySQL的配置参数,还可以使用类似SHOW VARIABLES LIKE 'Key%'
SHOW PROCESSLIST:SHOW PROCESSLIST是查看当前正在进行的进程,对于有锁表等情况的排查很有用处,一般情况下,打开MySQL的慢查询记录同样有利于排查.
SHOW OPEN TABLES:SHOW OPEN TABLES是显示当前已经被打开的表列表。
mysqladmin status
使用MySQL自带的mysqladmin 工具查看status,使用以下命令:
mysqladmin -uroot --password='password' status
显示的结果如下:
Uptime: 87117 Threads: 1 Questions: 5481626 Slow queries: 16 Opens: 2211 Flush tables: 1 Open tables: 512 Queries per second avg: 62.923
另外可以添加 -i 5 参数,让其每五秒自动刷新之,代码如下:
- mysqladmin -uroot --password='password' status -i 5
- mysqladmin extended-status --phpfensi.com
同样的可以使用mysqladmin -uroot --password='password' extended-status来查看更多的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优化的第一步,也是非常重要的一步.
Tags: mysqldumpslow MySQL查询慢
相关文章
- ·mysql中TIME_WAIT过多导致查询慢解决办法(2014-10-08)
- ·mysql服务器查询慢原因分析与解决方法(2014-10-13)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)