绝了!MySql可视化分析工具

前言

一连三问

什么是慢SQL,你知道吗?

慢sql在哪里?

重点来了,慢SQL怎么去分析?

如果不知道,那你接着往下看,助你效率提升N倍!!!

去年写了文章mysql慢查询可视化分析,介绍了pt-query-digest这个工具怎么对mysql的慢查询进行分析。后续基于这个工具进行了二次简单封装开发,生成html报告文件。

持续有小伙伴私信问我能否开源这个工具,是否能看下源码,最近整理了下,上传到了github上,欢迎大家学习交流

ps:界面做的有点丑,大家将就着看(我对前端还是比较欠缺)

先看下效果:

image.png

环境安装

安装golang

我使用的开发语言是go,所以第一步,需要安装golang的环境。也可以使用其他语言开发,比如:python、java等

我安装的golang的版本是:1.22.2,安装的版本不能低于这个

安装包地址,选择对应的系统环境下载安装即可。

安装 Percona Toolkit

Percona Toolkit 这个工具的安装,包含了pt-query-digest,建议直接安装,如果单独安装pt-query-digest,需要安装底层的各种依赖包。如果安装Percona Toolkit,需要的依赖一起安装,这样比较省事。

Percona Toolkit,官网地址,按照介绍,直接安装即可

推荐这种安装方式,如果是其它linux的版本,需要安装源,根据报错信息,网上搜下资料安装就好

  • For Debian or Ubuntu:
sudo apt-get install percona-toolkit
  • For RHEL or CentOS:
 sudo yum install percona-toolkit

ps: pt-query-digest只能在linux安装,所以运行的时候请在linux下进行

开发思路

开发流程如下:

image.png

步骤:

  1. 通过pt-query-digest解析mysql生成的慢sql日志文件,这个文件路径,一般在 /var/log下面,如不在,具体得看下,mysql的配置文件。通过解析生成一个json格式的数据格式,为后续的解析做准备
//命令样例
pt-query-digest  /var/log/mysql4306-slow.log --output json  --noversion-check  --progress time,1 --charset=utf8mb4 --since='2024-04-16 00:00:00' --until='2024-04-16 23:00:00' >mysql_slow.json

  1. 通过上面得到的json格式的数据文件,对mysql_slow.json进行解析
  2. 通过解析mysql_slow.json文件,生成html文件

如何使用

有的小伙伴,可能对golang不熟悉,没事,你只要安装了pt-query-digest就行,执行的文件,我已经打包好了。下载项目下来,直接运行即可

使用介绍

./slowsql-analysis -h 可以获取帮助信息
Usage of ./slowsql-analysis:
-endTime string
结束时间 格式:yyyy-mm-dd hh:mm:ss
-f string
慢sq日志文件所在的位置 例子:/var/log/mysql4306-slow.log
-startTime string
开始时间 格式:yyyy-mm-dd hh:mm:ss

执行样例:

./slowsql-analysis -f /var/log/mysql4306-slow.log -startTime="2024-04-16 00:00:00" -endTime="2024-04-16 23:00:00"

执行后,就会在当前目录生成一个html文件,直接打开查看即可。

文件解读

文件打开如下;

image.png

点击查看执行的sql:

image.png

指标

指标描述
数据库对应的在哪个逻辑库上执行的
查询次数在指定的时间内,这个sql总执行的次数
单次查询的最大行数执行的sql,扫描的数据库的数据行数
单次查询的最大字节数查询的数据的大小
单次发送客户端的最大行数查询出来的数据,发给我客户端多少行,比如:数据库扫描的了1w行,但是数据库过来后,只发了客户端100行
单次慢查询最长时间在这时间区间,sql执行的最长时间
慢查询95时间同样的sql,响应时间,95%都是这个时间
慢查询涉及表sql查询,关联了哪些表

我只要用了这些指标,真正的指标数据还很多,根据需要可以修改源码,提取更多的符合自己的指标数据

源码地址

代码我以前上传到github,需要的自行下载学习,以及二次开发都可以。项目地址:
slowsql-analysis

最后,如果这个工具对你有帮助,请动动小手,一键三连,点赞、收藏、关注,让更多人看到。

  • 21
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL是一种流行的开源关系型数据库管理系统,广泛用于各种应用程序的数据存储和管理。为了方便开发者操作MySQL数据库,提高工作效率,一些在线可视化工具被开发出来。 MySQL在线可视化工具主要有以下几个优点: 1. 简单易用:相比于命令行操作数据库,使用在线可视化工具可以通过直观的用户界面进行操作,不需要记住复杂的SQL语句和命令,提高了数据库操作的易用性。 2. 可视化操作:在线可视化工具可以通过图形化界面展示数据库结构和数据,方便开发者查看表、字段、数据等信息,减少了出错的可能性。 3. 快速操作:通过在线可视化工具,开发者可以快速执行数据库操作,如创建、修改和删除表,插入和更新数据等,大大提高了开发效率。 4. 查询优化:在线可视化工具通常提供了查询构建器,可以帮助开发者生成优化的查询语句,避免了手动编写复杂的SQL语句的错误和繁琐。 5. 数据可视化分析:一些高级的在线可视化工具提供了数据分析可视化功能,可以通过柱状图、饼图、折线图等方式展示数据库中的数据,帮助开发者更好地理解和分析数据。 当然,使用在线可视化工具也有一些限制和注意事项。首先,对于大型数据库或者复杂的查询操作,命令行可能更适合,因为在线可视化工具可能存在性能瓶颈。其次,对于安全性要求较高的数据库,使用在线可视化工具可能存在安全隐患,需要谨慎使用。最后,在线可视化工具通常是基于特定的操作系统和浏览器,需要根据自己的环境进行选择。 总的来说,MySQL在线可视化工具是一种简单易用、快速操作、可视化分析工具,可以帮助开发者更方便地管理和操作MySQL数据库

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值