1.简介
mysqlsla是hackmysql.com推出的一款MySQL的日志分析工具,可以分析mysql的慢查询日志、分析慢查询非常好用,能针对库分析慢查询语句的执行频率、扫描的数据量、消耗时间等。
2.安装
01. 安装依赖软件
yum install perl-DBI perl-DBD-MySQL perl-devel perl-Time-HiRes -y
02. 下载,解压
wget http://hackmysql.com/scripts/mysqlsla-2.03.tar.gz
03. 编译安装
perl Makefile.PL && make && make install
3.mysqlsla参数说明
01. -log-type (-lt) type logs:
通过这个参数来制定log的类型,主要有slow, general, binary, msl, udl,分析slow log时通过制定为slow.
02. -sort:
制定使用什么参数来对分析结果进行排序,默认是按照t_sum来进行排序。
t_sum:按总时间排序
c_sum:按总次数排序
c_sum_p: sql语句执行次数占总执行次数的百分比。
03. -top:
显示sql的数量,默认是10,表示按规则取排序的前多少条
04. –statement-filter (-sf) [+-][TYPE]:
过滤sql语句的类型,比如select、update、drop.
[TYPE]有SELECT, CREATE, DROP, UPDATE, INSERT,例如"+SELECT,INSERT",不出现的默认是-,即不包括。
05. db:要处理哪个库的日志。
4.输出结果说明
01. queries total: 总的查询数量
02. unique: 去重后总数量
03. Sorted by: 排序方式
04. Count: sql的执行次数及占总的slow log数量的百分比
05. Time: 执行时间:包括总时间,平均时间,最小时间,最大时间,时间占到总慢sql时间的百分比
06. Lock Time: 等待锁的时间
07. Rows sent: 输出行数, 包括平均数, 最小数, 最大数
08. Rows examined: 扫描的行数
09. Database: 所查询的数据库
10. Users: 用户,IP地址,占到所有用户执行的sql语句百分比
11. Query abstract: 所使用的sql语句摘要
13、Query sample: 所使用的sql语句
5.使用例句
00. 简单使用
mysqlsla -lt slow slow.log
01. 慢查询日志中,执行时间最长的10条SQL
mysqlsla -lt slow -sf "+select" -top 10 slow.log > yoon.log
02. 慢查询日志中slow.log的数据库为sakila的所有select和update的慢查询sql,并查询次数最多的100条sql
mysqlsla -lt slow -sf "+select,update" -top 100 -sort c_sum -db sakila slow.log > yoon.log
03. 取数据库sakila库中的select语句、按照c_sum_p排序的前2条
mysqlsla -lt slow -sort c_sum_p -sf "+select" -db sakila -top2 /export/servers/mysql/log/slow.log
04. 慢查询日志中,取出执行时间最长的3条SQL语句
mysqlsla -lt slow --top 3 slow.log
05. 按照总的执行次数
mysqlsla -lt slow --top 3 --sort c_sum slow.log
06. 取出create语句的慢查询
mysqlsla -lt slow -sf "+create"--top 3 --sort c_sum slow.log > yoon.log