加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MYSQL教程mysqlsla慢查询分析工具使用笔记

发布时间:2020-12-12 00:50:55 所属栏目:MySql教程 来源:网络整理
导读:《MYSQL教程mysqlsla慢查询分析工具使用笔记》要点: 本文介绍了MYSQL教程mysqlsla慢查询分析工具使用笔记,希望对您有用。如果有疑问,可以联系我们。 且该工具自带相似SQL语句去重的功能,能按照指定方式进行排序(比如分析慢查询日志的时候,让其按照SQL语句

《MYSQL教程mysqlsla慢查询分析工具使用笔记》要点:
本文介绍了MYSQL教程mysqlsla慢查询分析工具使用笔记,希望对您有用。如果有疑问,可以联系我们。

且该工具自带相似SQL语句去重的功能,能按照指定方式进行排序(比如分析慢查询日志的时候,让其按照SQL语句执行时间逆排序,就能很方便的定位出问题所在)MYSQL教程

+ ------------- 安装mysqlsla慢查询日志分析工具 ------------- +
MYSQL教程

代码如下:
yum -y install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker
yum -y install perl-DBI perl-DBD-MySQL
yum -y install perl-CPAN

perl -MCPAN -e shellMYSQL教程


进入提示行,输入 yes
进入 CPAN
代码如下: cpan > install YAML
cpan > install Time::HiRes
# 以上安装有提示东西都输入 yes ???

wget http://hackmysql.com/scripts/mysqlsla-2.03.tar.gz
tar xvfz mysqlsla-2.03.tar.gz
cd mysqlsla-2.03
perl Makefile.PL
make && make installMYSQL教程

+ ------------------- mysqlsla工具使用介绍 ------------------------- +
基本使用方法:
MYSQL教程

代码如下: mysqlsla -lt slow -sort t_sum -top 1000? /tmp/slow_query.log

输出结果类似于
MYSQL教程

代码如下:
Report for slow logs: slowquery.log
1.59k queries total,69 unique
Sorted by 't_sum'
Grand Totals: Time 109 s,Lock 0 s,Rows sent 142.02k,Rows Examined 21.26M
______________________________________________________________________ 001 ___
Count : 26 (1.64%)
Time : 6.121513 s total,235.443 ms avg,202.917 ms to 311.527 ms max (5.63%)
? 95% of Time : 5.538256 s total,230.761 ms avg,202.917 ms to 271.056 ms max
Lock Time (s) : 2.407 ms total,93 μs avg,84 μs to 139 μs max (1.55%)
? 95% of Lock : 2.152 ms total,90 μs avg,84 μs to 99 μs max
Rows sent : 0 avg,0 to 0 max (0.00%)
Rows examined : 153.68k avg,153.67k to 153.69k max (18.79%)
Database :
Users :
?root@localhost 127.0.0.1 : 100.00% (26) of query,100.00% (1586) of all users

Query abstract:
SET timestamp=N; SELECT order_pid FROM wfc_delivery WHERE ( order_pid IN (S1) ) AND ( status IN (S3) ) GROUP BY order_pid;MYSQL教程

Query sample:
SET timestamp=1387964641;
SELECT `order_pid` FROM `wfc_delivery` WHERE ( `order_pid` IN ('8831') ) AND ( `status` IN ('1','4','24') ) GROUP BY order_pid;
MYSQL教程


选项说明:
总查询次数 (queries total),去重后的sql数量 (unique)
输出报表的内容排序(sorted by)
最重大的慢sql统计信息,包括 平均执行时间,等待锁时间,结果行的总数,扫描的行总数.
Count,sql的执行次数及占总的slow log数量的百分比.
Time,执行时间,包括总时间,平均时间,最小,最大时间,时间占到总慢sql时间的百分比.
95% of Time,去除最快和最慢的sql,覆盖率占95%的sql的执行时间.
Lock Time,等待锁的时间.
95% of Lock,95%的慢sql等待锁时间.
Rows sent,结果行统计数量,包括平均,最大数量.
Rows examined,扫描的行数量.
Database,属于哪个数据库
Users,哪个用户,IP,占到所有用户执行的sql百分比
Query abstract,抽象后的sql语句
Query sample,sql语句

mysqlsla常用参数说明:MYSQL教程

1) -log-type (-lt) type logs:
通过这个参数来制定log的类型,主要有slow,general,binary,msl,udl,分析slow log时通过制定为slowMYSQL教程

2) -sort:
制定使用什么参数来对分析结果进行排序,默认是按照t_sum来进行排序.
t_sum:按总时间排序
c_sum:按总次数排序
c_sum_p: sql语句执行次数占总执行次数的百分比.MYSQL教程

3) -top:
显示sql的数量,默认是10,表示按规则取排序的前多少条MYSQL教程

4) Cstatement-filter (-sf) [+-][TYPE]:
过滤sql语句的类型,比如select、update、drop.
[TYPE] 有SELECT,CREATE,DROP,UPDATE,INSERT,例如"+SELECT,INSERT",不出现的默认是-,即不包括.MYSQL教程

5) -db:要处理哪个库的日志:MYSQL教程

# 举个例子,只取funsion数据库的select语句,并按照总时间排序,取前1000条数据
# 保存到当前目录下的 slow_query.pretty.log文件中
mysqlsla -lt slow? -sort t_sum? -sf "+select"? -db funsion? -top 1000? /tmp/slow_query.log > ./slow_query.pretty.logMYSQL教程

+ ------------------------ mysql慢查询日志开启方法 ------------------------- +MYSQL教程

修改my.cnf配置,在 [mysqld] 一栏中新增以下内容,开启慢查询日志
MYSQL教程

代码如下:
[mysqld]
log_slow_queries = ON
log-slow-queries = /tmp/slow_query.log
long_query_time = 1

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读