数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

用mysqldumpslow分析mysql的slow query log


发布日期:2020年12月28日
 
用mysqldumpslow分析mysql的slow query log

mysql有一个功能就是可以log下来运行的比较慢的sql语句默认是没有这个log的为了开启这个功能要修改f或者在mysql启动的时候加入一些参数如果在f里面修改需增加如下几行

long_query_time = logslowqueries = /var/youpath/slowloglogqueriesnotusingindexes

long_query_time 是指执行超过多久的sql会被log下来这里是

logslowqueries 设置把日志写在那里可以为空系统会给一个缺省的文件host_nameslowlog我生成的log就在mysql的data目录

logqueriesnotusingindexes 就是字面意思log下来没有使用索引的query

把上述参数打开运行一段时间就可以关掉了省得影响生产环境

接下来就是分析了我这里的文件名字叫hostslowlog

先mysqldumpslow –help以下俺主要用的是

s ORDER what to sort by (t at l al r ar etc) ‘at’ is default

t NUM just show the top n queries

g PATTERN grep: only consider stmts that include this string

s是order的顺序说明写的不够详细俺用下来包括看了代码主要有

ctlr和acatalar分别是按照query次数时间lock的时间和返回的记录数来排序前面加了a的时倒叙

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

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

mysqldumpslow s c t hostslowlogmysqldumpslow s r t hostslowlog

上述命令可以看出访问次数最多的个sql语句和返回记录集最多的个sql

mysqldumpslow t s t g “left join” hostslowlog

这个是按照时间返回前条里面含有左连接的sql语句

用了这个工具就可以查询出来那些sql语句是性能的瓶颈进行优化比如加索引该应用的实现方式等

上一篇:利用SQL找出一个月中有多少个周日

下一篇:SQL Server 2008高可用性(High Availability)简介(2)—Datab