千家信息网

mysqlsla的安装教程与慢查询日志分析

发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,本文主要给大家介绍mysqlsla的安装教程与慢查询日志分析,其所涉及的东西,从理论来分析,整体上大致可分三层来描述,网上有很多书籍、文献可供大家参考,从现实意义来讲,累计多年的实践经验可分享给大家。
千家信息网最后更新 2024年11月24日mysqlsla的安装教程与慢查询日志分析

本文主要给大家介绍mysqlsla的安装教程与慢查询日志分析,其所涉及的东西,从理论来分析,整体上大致可分三层来描述,网上有很多书籍、文献可供大家参考,从现实意义来讲,累计多年的实践经验可分享给大家。

安装

mysqlsla是一款帮助语句分析、过滤、和排序的功能,能够处理MySQL慢查询日志、二进制日志等。整体来说, 功能非常强大. 能制作SQL查询数据报表,分析包括执行频率, 数据量, 查询消耗等

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

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

复制代码 代码如下:

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 shell


进入提示行,输入 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 install

+ ------------------- mysqlsla工具使用介绍

基本使用方法:

复制代码 代码如下:

mysqlsla -lt slow -sort t_sum-top 1000 /tmp/slow_query.log

输出结果类似于

复制代码 代码如下:


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 msmax
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 allusers

Queryabstract:
SET timestamp=N; SELECT order_pid FROM wfc_delivery WHERE ( order_pid IN (S1) )AND ( status IN (S3) ) GROUP BY order_pid;

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



______________________________________________________________________ 001 ___

Count : 19.16k (16.78%)

Time : 76711.82882 s total, 4.003958 s avg, 1.003058 s to 26.800847 s max (19.75%)

95% of Time : 66412.55456 s total, 3.648841 s avg, 1.003058 s to 9.204016 s max

Lock Time (s) : 1.425805 s total, 74 祍 avg, 0 to 78 ms max (4.36%)

95% of Lock : 0 total, 0 avg, 0 to 0 max

Rows sent : 0 avg, 0 to 0 max (0.00%)

Rows examined : 1 avg, 1 to 1 max (0.00%)

Database :

Users :

root@ 172.31.43.29 : 100.00% (19159) of query, 97.62% (111483) of all users


Query abstract:

SET timestamp=N; SELECT node_id AS nodeid ,org_id AS orgid FROM t_org_info WHERE ets_project_id = NULL LIMIT N;


Query sample:

SET timestamp=1504061325;

SELECT node_id as nodeId ,org_id as orgId FROM t_org_info where ets_project_id = null limit 1;


______________________________________________________________________ 002 ___


选项说明:
总查询次数(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常用参数说明:

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

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

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

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

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

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

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

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

复制代码 代码如下:


[mysqld]
log_slow_queries = ON
log-slow-queries = /tmp/slow_query.log
long_query_time = 1

2、使用mysqlsla分析MySQL慢查询日志

#查询记录最多的20个sql语句,并写到select.log中去

mysqlsla -lt slow --sort t_sum --top 20 /data/mysql/127-slow.log >/tmp/select.log

#统计慢查询文件为/data/mysql/127-slow.log的所有select的慢查询sql,并显示执行时间最长的100条sql,并写到sql_select.log中去

mysqlsla -lt slow -sf "+select" -top100 /data/mysql/127-slow.log >/tmp/sql_select.log

#统计慢查询文件为/data/mysql/127-slow.log的数据库为mydata的所有select和update的慢查询sql,并查询次数最多的100条sql,并写到sql_num.sql中去

mysqlsla -lt slow -sf "+select,update" -top100 -sort c_sum -db mydata /data/mysql/127-slow.log >/tmp/sql_num.log

看了以上介绍mysqlsla的安装教程与慢查询日志分析,希望能给大家在实际运用中带来一定的帮助。本文由于篇幅有限,难免会有不足和需要补充的地方,大家可以继续关注行业资讯板块,会定期给大家更新行业新闻和知识,如有需要更加专业的解答,可在官网联系我们的24小时售前售后,随时帮您解答问题的。

查询 时间 日志 分析 代码 排序 语句 数据 数量 次数 百分 百分比 统计 功能 参数 工具 数据库 文件 教程 最大 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 如何升级浪潮服务器bios 中华人名共和国网络安全阀 上海市网络安全管理协会 关于网络技术应用的视频 广州万易互联网科技有限公司 网络安全法有哪几个能力 菏泽卫生健康网络安全和信息化 青少年网络安全教育 论文 海外网络安全行业 什么样的数据库才是安全的 互联网对促进科技创新发展的视频 武汉千纸鹤网络技术有限公司 用友时空数据库连接失败 树莓派爬虫服务器 江阴网络安全大队肖宏伟 人大数据库先驱者 嵌入软件开发工程师 信息科技有限公司互联网广告 三峡高科网络安全员工 软件开发人员对企业的影响 分布式数据库技术好处 服务器专用机柜 网络安全事件 措施 mysql数据库用户文件表 神丰软件开发公司 备份数据库提示没有选中表 北京好利阀业软件开发 成都全速网络技术有限公司好吗 c用数据库生成实体类 运城软件开发厂家
0