`

MySQL慢查询

 
阅读更多

慢查询对于跟踪有问题的查询很有用,可以分析出当前程序里那些Sql语句比较耗费资源。

 

1。查看慢查询当前状态

mysql> show variables like "%slow%";

+---------------------+-----------------------------+

| Variable_name       | Value                       |

+---------------------+-----------------------------+

| log_slow_queries    | ON                          |

| slow_launch_time    | 2                           |

| slow_query_log      | ON                          |

| slow_query_log_file | /var/lib/mysql/log/slow.log |

+---------------------+-----------------------------+

4 rows in set (0.01 sec)

 

默认情况下是关闭的,这里已经开启慢查询。

 

开启方法为:

 

mysql> set global slow_query_log=on;

 

对上面信息的解释:

| slow_launch_time | 2 |          表示超过2秒定义为慢查询。

| slow_query_log | ON |            慢查询已经开启。

| slow_query_log_file | /data/mysql/var/db-Test2-slow.log |         慢查询日志的文件

 

 – mysqldumpslow分析日志,可用mysql提供的mysqldumpslow,使用很简单,参数可–help查看

# -s:排序方式。

c , t , l , r 表示记录次数、时间、查询时间的多少、返回的记录数排序;

# ac , at , al , ar 表示相应的倒叙;

# -t:返回前面多少条的数据;

# -g:包含什么,大小写不敏感的;

mysqldumpslow -s r -t 10 /slowquery.log

#slow记录最多的10个语句mysqldumpslow -s t -t 10 -g "left join" /slowquery.log

#按照时间排序前10中含有"left join"的推荐用分析日志工具 – mysqlsla wget http://hackmysql.com/scripts/mysqlsla-2.03.tar.gz

tar zvxf mysqlsla-2.03.tar.gz

cd mysqlsla-2.03

perl Makefile.PL

make

make install mysqlsla /data/mysqldata/slow.log

# mysqlsla会自动判断日志类型,为了方便可以建立一个配置文件“~/.mysqlsla”

# 在文件里写上:top=100,这样会打印出前100条结果。

 

启动完成后,就可以对慢查询日志进行分析了

 

第一,可以直接查看慢查询日志

 

第二,可 以借助工具来完成【mysqlsla】

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics