慢查询对于跟踪有问题的查询很有用,可以分析出当前程序里那些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】