mysql 慢查询分析工具
mysql慢查询的开启
找到mysql的配置文件,如果没有一下3个配置则添加,有则修改
slow_query_log = 1;(或者on都可以)开启慢查询日志
slow_query_log_file = /usr/local/mysql/data/slow_query.log 日志保存的路径;
long_query_time = 3;慢查询的时间,单位秒,条件是大于
log_output = FILE 默认FILE,是记录到文件中,TABLE是存入mysql.slow_log表中。2者可同时存在,以逗号分隔,存入到表中,更耗资源
mysql慢查询分析工具
MySQL提供了日志分析工具 mysqldumpslow,在mysql安装路径下的/bin文件
参数详解:
-t, 是top n的意思,即为返回前面多少条的数据;
-g, 后边可以写一个正则匹配模式,大小写不敏感的;
-s, 是表示按照何种方式排序:
- c: 访问计数
- l: 锁定时间
- r: 返回记录
- t: 查询时间
- al:平均锁定时间
- ar:平均返回记录数
- at:平均查询时间
比如:
- 得到返回记录集最多的10个SQL。
mysqldumpslow -s r -t 10 /www/server/data/mysql-slow.log - 得到访问次数最多的10个SQL
mysqldumpslow -s c -t 10 /www/server/data/mysql-slow.log - 得到按照时间排序的前10条里面含有左连接的查询语句。
mysqldumpslow -s t -t 10 -g “left join” /www/server/data/mysql-slow.log
另外建议在使用这些命令时结合 | 和more 使用 ,否则有可能出现刷屏的情况。