【MySql】 慢日志查询工具之mysqlsla

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
日志服务 SLS,月写入数据量 50GB 1个月
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:
mysqlsla 是一款由hackmysql.com推出的一款日志分析工具,功能非常强大. 图形输出数据报表,非常有利于分析慢查询的原因, 包括执行频率, 数据量, 查询消耗等!
1 安装
[root@rac3 software]# wget http://hackmysql.com/scripts/mysqlsla-2.03.tar.gz
[root@rac3 software]# tar zvxf mysqlsla-2.03.tar.gz
[root@rac3 software]# mv mysqlsla-2.03 mysqlsla
[root@rac3 software]# cd mysqlsla
[root@rac3 mysqlsla]# ls
bin  Changes  INSTALL  lib  Makefile.PL  MANIFEST  META.yml  README
Makefile.PL  MANIFEST     META.yml    
[root@rac3 mysqlsla]# perl Makefile.PL
Checking if your kit is complete...
Looks good
Writing Makefile for mysqlsla
[root@rac3 mysqlsla]#
[root@rac3 mysqlsla]# make && make install
cp lib/mysqlsla.pm blib/lib/mysqlsla.pm
cp bin/mysqlsla blib/script/mysqlsla
/usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/mysqlsla
Manifying blib/man3/mysqlsla.3pm
Installing /usr/lib/perl5/site_perl/5.8.8/mysqlsla.pm
Installing /usr/share/man/man3/mysqlsla.3pm
Installing /usr/bin/mysqlsla
Writing /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/mysqlsla/.packlist
Appending installation info to /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/perllocal.pod
2 使用
在mysql中执行查询语句,之后使用mysqlsla 工具查询
[root@rac3 bin]# mysqlsla /opt/mysql/data/slowquery.log 
Auto-detected logs as slow logs
Report for slow logs: /opt/mysql/data/slowquery.log
3 queries total, 3 unique
Sorted by 't_sum'
Grand Totals: Time 1 s, Lock 0 s, Rows sent 2, Rows Examined 1.00M
______________________________________________________________________ 001 ___
Count         : 1  (50.00%)
Time          : 634.32 ms total, 634.32 ms avg, 634.32 ms to 634.32 ms max  (98.09%)
Lock Time (s) : 107.011 ms total, 107.011 ms avg, 107.011 ms to 107.011 ms max  (98.71%)
Rows sent     : 1 avg, 1 to 1 max  (50.00%)
Rows examined : 1.00M avg, 1.00M to 1.00M max  (99.80%)
Database      : test
Users         : 
        root@localhost  : 100.00% (1) of query, 100.00% (2) of all users
Query abstract:
SET timestamp=N; SELECT COUNT(N) FROM sbtest;
Query sample:
SET timestamp=1329572756;
select count(1) from sbtest;
______________________________________________________________________ 002 ___
Count         : 1  (50.00%)
Time          : 12.356 ms total, 12.356 ms avg, 12.356 ms to 12.356 ms max  (1.91%)
Lock Time (s) : 1.403 ms total, 1.403 ms avg, 1.403 ms to 1.403 ms max  (1.29%)
Rows sent     : 1 avg, 1 to 1 max  (50.00%)
Rows examined : 2.00k avg, 2.00k to 2.00k max  (0.20%)
Database      : 
Users         : 
        root@localhost  : 100.00% (1) of query, 100.00% (2) of all users
Query abstract:
SET timestamp=N; SELECT COUNT(N) FROM sbtest ,t1 WHERE t1.id=sbtest.id;
Query sample:
SET timestamp=1329572815;
select count(1) from sbtest ,t1 where t1.id=sbtest.id;
______________________________________________________________________ 003 ___
Count         : 1  (33.33%)
Time          : 12.356 ms total, 12.356 ms avg, 12.356 ms to 12.356 ms max  (0.00%)
Lock Time (s) : 1.403 ms total, 1.403 ms avg, 1.403 ms to 1.403 ms max  (1.29%)
Rows sent     : 1 avg, 1 to 1 max  (33.33%)
Rows examined : 2.00k avg, 2.00k to 2.00k max  (0.20%)
Database      : 
Users         : 
        root@localhost  : 100.00% (1) of query, 100.00% (3) of all users
Query abstract:
SET timestamp=N; SELECT COUNT(N) FROM sbtest ,t1 WHERE t1.id=sbtest.id;
Query sample:
SET timestamp=1329572815;
select count(1) from sbtest ,t1 where t1.id=sbtest.id;
输出解释:
queries total  总查询次数
unique           去除重复后的 sql 数量.
Sorted by       输出报表的内容排序.
Grand Totals slow sql 统计信息包括: 总执行时间, 等待锁时间, 结果行总数, 扫描行总数.
Count slow sql 的执行次数及占总的 slow log 数量的百分比.
Time 执行时间, 包括总时间, 平均时间, 最小, 最大时间, 时间占到总 slow sql 时间的百分比.
Lock Time 等待锁的时间.
Rows sent 结果行统计数量, 包括平均, 最小, 最大数量.
Rows examined 扫描的行数量.
Database 属于哪个数据库
Users username@hostname  执行sql的用户
Query abstract 精简后的sql语句
几个常用OPTION, 其他可查看官网文档
--log-type=type logs or -lt type logs
其中type logs 可为 slow, general, binary, msl or udl. 官方文档说是没有指定时, 会根据给定的日志文件自动检测, 但测试时失败, so, 最好指定该参数.
msl 是指 microslow patched 的慢日志.
udl 用户自定义的日志.
binary 因为 mysqlsla 不能直接解析 MySQL 的 binary log, 所以需先用 mysqlbinlog命令将其解析为文本. mysqlbinlog带有--short-form参数时, 则 LOG TYPE 需指定为 udl. 命令可类似于如下:
mysqlbinlog /opt/mysql/data/mysql-bin.000001 | mysqlsla -lt binary -
mysqlbinlog --short-form. /opt/mysql/data/mysql-bin.000001 | mysqlsla -lt udl -
--explain or -ex explain 每句 SQL, 默认没有启用
--databases=dbname1,dbnam2[,...] or -db dbname1,dbnam2[,...] or -D dbname1,dbnam2[,...]用于 --explain
--flush-qc 强制刷新查询缓存, 默认没有启用
--grep="PATTERN" 只解析满足条件的 SQL
--meta-filter="CONDTIONS" or -mf "CONDTIONS" CONDITIONS 格式为[meta][op][value],多个条件时, 中间以,分割.
[meta] 查看这里
[op] >, < r =. 当 [meta] 是基于字符串时, [op] 只能是 =.
[value] 数字 or 字符串.
--reports=REPORTS or -R REPORTS, 默认是 standard, REPORTS 可以是以,为分割的列表. 可选选项:standard, time-all, print-unique, print-all, dump
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
2月前
|
SQL 人工智能 关系型数据库
如何实现MySQL百万级数据的查询?
本文探讨了在MySQL中对百万级数据进行排序分页查询的优化策略。面对五百万条数据,传统的浅分页和深分页查询效率较低,尤其深分页因偏移量大导致性能显著下降。通过为排序字段添加索引、使用联合索引、手动回表等方法,有效提升了查询速度。最终建议根据业务需求选择合适方案:浅分页可加单列索引,深分页推荐联合索引或子查询优化,同时结合前端传递最后一条数据ID的方式实现高效翻页。
128 0
|
4月前
|
存储 缓存 Apache
StarRocks+Paimon 落地阿里日志采集:万亿级实时数据秒级查询
本文介绍了阿里集团A+流量分析平台的日志查询优化方案,针对万亿级日志数据的写入与查询挑战,提出基于Flink、Paimon和StarRocks的技术架构。通过Paimon存储日志数据,结合StarRocks高效计算能力,实现秒级查询性能。具体包括分桶表设计、数据缓存优化及文件大小控制等措施,解决高并发、大数据量下的查询效率问题。最终,日志查询耗时从分钟级降至秒级,显著提升业务响应速度,并为未来更低存储成本、更高性能及更多业务场景覆盖奠定基础。
|
17天前
|
存储 关系型数据库 MySQL
使用命令行cmd查询MySQL表结构信息技巧分享。
掌握了这些命令和技巧,您就能快速并有效地从命令行中查询MySQL表的结构信息,进而支持数据库维护、架构审查和优化等工作。
131 9
|
18天前
|
存储 关系型数据库 MySQL
在CentOS 8.x上安装Percona Xtrabackup工具备份MySQL数据步骤。
以上就是在CentOS8.x上通过Perconaxtabbackup工具对Mysql进行高效率、高可靠性、无锁定影响地实现在线快速全量及增加式数据库资料保存与恢复流程。通过以上流程可以有效地将Mysql相关资料按需求完成定期或不定期地保存与灾难恢复需求。
100 10
|
2月前
|
运维 安全 数据可视化
日志审查安排工具实战攻略:中小团队如何通过日志审查安排工具建立可控、安全的审查机制?
在审计敏感时代,日志审查安排工具成为安全运维与合规管理的关键利器。它实现审查任务的流程化、周期化与可视化,支持多系统协作、责任到人,确保“可控、可查、可追”的日志治理。工具如板栗看板、Asana、Monday 等提供任务调度、问题闭环与合规对接能力,助力企业构建高效、透明的日志审查体系,提升安全与合规水平。
|
3月前
|
关系型数据库 MySQL 数据库
MySQL报错:未知系统变量'tx_isolation'及隔离级别查询
记住,选择合适的隔离级别,就像是在风平浪静的湖面上找到适合的划船速度——既要快到能赶上午饭(性能),又不至于翻船(数据一致性问题)。
171 3
|
4月前
|
SQL 监控 关系型数据库
MySQL日志分析:binlog、redolog、undolog三大日志的深度探讨。
数据库管理其实和写小说一样,需要规划,需要修订,也需要有能力回滚。理解这些日志的作用与优化,就像把握写作工具的使用与运用,为我们的数据库保驾护航。
189 23
|
3月前
|
SQL 关系型数据库 MySQL
MySQL 进行 select 查询时 where 条件中 in 的value数过多却导致无记录返回
MySQL 进行 select 查询时 where 条件中 in 的value数过多返回不符合预期怎么办?会不会遇到bug了?
191 0
|
3月前
|
JavaScript API 开发工具
HarmonyOS NEXT实战:日志工具
本文介绍了在HarmonyOS Next应用开发中,如何封装一个简单易用的日志工具LoggerKit。通过使用系统提供的HiLog API,开发者可以灵活输出不同级别的日志信息(DEBUG、INFO、WARN、ERROR、FATAL),用于分析应用运行状态和调试逻辑问题。文章详细说明了日志级别、参数配置及使用注意事项,并提供了完整的TypeScript封装示例代码,便于实际项目集成与应用调试。
88 0
|
4月前
|
canal 关系型数据库 MySQL
MySQL 自动同步开源工具
本文介绍了几种开源工具用于实现 MySQL 数据库的自动同步。

推荐镜像

更多