分析 MyBatis/MyBatis-Plus 慢 SQL 的分析组件 --SQL 慢镜️‍♀️

news/2024/5/19 7:57:56

大家好!我是聪ζ🌱我做了一个分析 MyBatis/MyBatis-Plus 慢 SQL 的分析组件 --SQL 慢镜🕵️‍♀️

GitHub仓库地址🚀: https://github.com/lhccong/sql-slow-mirror 点点 star 我的朋友们✨

背景🧊:

大家在编写项目的过程中是否经常遇到要分析 SQL 语句是否要加索引的问题,SQL 太慢使用了 MyBatis 有多个无法快速定位的问题,让我们十分头痛🤡。

项目介绍💡 :

该项目后端基于 MyBatis + MyBatis-Plus + easyRule(规则引擎) 进行开发组件。😁 项目参考了京东开源组件 sql-analysis 进行开发,不愧是京东⚡。

在这里插入图片描述

功能介绍🌈:

SQL 慢镜是一个能帮助到大家快速定位慢 SQL 以及分析慢 SQL 的组件,通过分析 MySQL 的执行计划来给出结果评分。
在这里插入图片描述

1、用户可以通过自定义输出如:发送 MQ、保存数据库等自定义的方式来输出。

2、用户可以自定义规则,来按照自己想要的规则来进行 SQL 的打分📑。

3、通过可以通过 慢镜 给出的分析结果来选择是否对 SQL 进行修改、添加索引等操作简单明了。

亮点✨:

1、使用了 MyBatis 拦截切面来进行 SQL 获取。

2、通过分析 MyBatis 的 Invocation 来进行 SQL 语句的解析。

3、实现了通过读取 YML 配置来进行属性注入。

4、使用了函数式编程来进行日志的打印输出。

5、使用了 easyRule 规则引擎来进行 SQL 分析计划的评分。

6、项目对各个方面操作做了清晰的注释以及清晰的 demo,方便大家阅读学习

扩展思路🔥:

1、SQL 替换,在 SQL 执行前根据指定的 Sqlid 替换掉指定的 SQL。

2、实现 MQ 发送日志的形式。

3、实现将分析结果生成文件。

4、通过封装 Starter 来进行注解拦截分析。

5、实现 Hibernate JPA 的方式进行拦截处理。


http://www.mrgr.cn/p/33757010

相关文章

串口服务器可以直接连接工业路由器吗

串口服务器可以直接连接工业路由器吗 在工业物联网的架构中,串口服务器和工业路由器都是不可或缺的重要组件。串口服务器的主要功能是将串口通信转换为网络通信,实现数据的远程传输和管理;而工业路由器则负责在工业环境中提供稳定、可靠的网络连接,确保数据的顺畅传输。那么…

Excel为批注设置图片背景 出现Bad Request - Request Too long

Excel为批注设置图片背景 打开EXCEL 点击文件 点选项 点击信任中心 点击信任中心设置 点击隐私选项 点击隐私设置 取消全部勾选关闭EXCEL 重新打开再操作,在填充效果中 选图片出现 点脱机工作 就可以正常先图片了

Composer初次接触

php一直都是简单处理一下单片机的后台服务,没什么深入研究 今天安装一个 php composer.phar require qiniu/php-sdkComposer完全不懂,照着一试,就报错了 - topthink/think-installer v1.0.12 requires composer-plugin-api ^1.0 -> found…

串口服务器和光纤交换机有什么不同

串口服务器与光纤交换机在功能和应用上存在显著区别。串口服务器主要实现串口设备与以太网设备之间的数据转换与传输,适用于远程监控、数据采集等场景;而光纤交换机则专注于高速光纤网络中的数据交换,为大型企业或数据中心提供稳定、高效的数据传输服务。简而言之,串口服务…

掘金、聚宽和米筐各量化平台优缺点

1、聚宽和米筐的商业模式主要是卖数据,掘金有自己做实盘, 2、聚宽有策略商城可以卖策略,掘金社区不太活跃 3、平台都有相关书籍,可以对照,有源码,掘金《》, 4、以python为例,掘金易用性较好,API文档清晰,windows客户端做的比较好, 策略都在本地运行, 很好的python代码…

parallels desktop19.3最新版本软件新功能详细介绍

Parallels Desktop是一款运行在Mac电脑上的虚拟机软件,它允许用户在Mac系统上同时运行多个操作系统,比如Windows、Linux等。通过这款软件,Mac用户可以轻松地在同一台电脑上体验不同操作系统的功能和应用程序,而无需额外的硬件设备…

source 1.5 中不支持 lambda 表达式, Deployment failed repository element

1、java:[400,90] 错误: -source 1.5 中不支持 lambda 表达式 Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project原因是未指定版本,默认用jdk 1.5在编译 <plugins><!-- 指定maven编译的jdk版本,如…

算法刷题day46

目录 引言一、树的重心二、毕业旅行问题三、高精度乘法 引言 今天复习了一下高精度的所有模板&#xff0c;包括加法、减法、乘法、除法&#xff0c;因为自己当时在蓝桥杯的时候没有看出来那个题使用高精度&#xff0c;因为对于一个数的大小和一个数的长度&#xff0c;自己有时…

微软Phi-3,3.8亿参数能与Mixtral 8x7B和GPT-3.5相媲美,量化后还可直接在IPhone中运行

Phi-3系列 Phi-3是一系列先进的语言模型,专注于在保持足够紧凑以便在移动设备上部署的同时,实现高性能。Phi-3系列包括不同大小的模型:Phi-3-mini(38亿参数) - 该模型在3.3万亿个令牌上进行训练,设计得足够小,可以在现代智能手机上运行。尽管体积紧凑,它的性能却可与更…

postgresql中两张表的聚合函数合并到一列或一行,做除法,并保留两位小数

--两张表的无关数据合并到一张表 SELECT A.name, B.name FROM (select o.name, row_number() over(order by name) from tb_org as o) A FULL JOIN (select r.name, row_number() over(order by r.name) from tb_region as r) B ON A.row_number = B.row_number;这里是利用了…

Git - 在PyCharm/Idea中集成使用Git

文章目录 Git - 在PyCharm/Idea中集成使用Git1.新建GitHub仓库2.将仓库与项目绑定3.在PyCharm中使用Git4.新建Gitee仓库5.将仓库与项目绑定6.在IDEA中使用Git Git - 在PyCharm/Idea中集成使用Git 本文详细讲解了如何在 PyCharm 或 Idea 中配置 Gitee 或 GitHub 仓库&#xff0…

在阿里云服务器上安装python3.6.3

阿里云服务器试用 1、先进到服务器列表2、进入远程连接客户端使用账号密码进行连接即可用xshell或putty连接了 ============================================================================= 一般系统中默认是python2,下面是python3安装流程 一、下载 https://www.python.…

Computer Basics 10 - Setting Up a Computer

Setting up a computer Настройка компьютера So you have a new computer and youre ready to set it up. This may seem like an overwhelming /ˌəʊvəˈwelmɪŋ/ and complicated /ˈkɒmplɪkeɪtɪd/ task, but its actually a lot easier than y…

图像处理之模板匹配(C++)

图像处理之模板匹配&#xff08;C&#xff09; 文章目录 图像处理之模板匹配&#xff08;C&#xff09;前言一、基于灰度的模板匹配1.原理2.代码实现3.结果展示 总结 前言 模板匹配的算法包括基于灰度的匹配、基于特征的匹配、基于组件的匹配、基于相关性的匹配以及局部变形匹…

分布式版本控制工具 Git 的使用方式

文章目录 Git简介下载安装基本使用起始配置Git 的三个区域基本操作流程查看仓库状态删除&#xff08;撤销暂存区&#xff09;差异对比查看版本日志版本回退修改提交日志分支概念&#xff1a;创建分支与切换分支合并分支&#xff08;快速合并&#xff09;合并分支&#xff08;提…

Pandas 2.2 中文官方教程和指南(一)

原文:pandas.pydata.org/docs/安装原文:pandas.pydata.org/docs/getting_started/install.html安装 pandas 的最简单方法是作为Anaconda发行版的一部分安装,这是一个用于数据分析和科学计算的跨平台发行版。Conda包管理器是大多数用户推荐的安装方法。 还提供了从源代码安装…

Pandas 2.2 中文官方教程和指南(十三)

原文:pandas.pydata.org/docs/写时复制(CoW)原文:pandas.pydata.org/docs/user_guide/copy_on_write.html注意 写时复制将成为 pandas 3.0 的默认设置。我们建议现在就启用它以从所有改进中受益。 写时复制首次引入于版本 1.5.0。从版本 2.0 开始,大部分通过 CoW 可能实现…

Pandas 2.2 中文官方教程和指南(十七)

原文:pandas.pydata.org/docs/重复标签原文:pandas.pydata.org/docs/user_guide/duplicates.htmlIndex对象不需要是唯一的;你可以有重复的行或列标签。这一点可能一开始会有点困惑。如果你熟悉 SQL,你会知道行标签类似于表上的主键,你绝不希望在 SQL 表中有重复项。但 pan…

Pandas 2.2 中文官方教程和指南(三)

原文:pandas.pydata.org/docs/如何操作文本数据原文:pandas.pydata.org/docs/getting_started/intro_tutorials/10_text_data.html将所有名称字符改为小写。 In [4]: titanic["Name"].str.lower() Out[4]: 0 braund, mr. owen har…

Pandas 2.2 中文官方教程和指南(十八)

原文:pandas.pydata.org/docs/可空整数数据类型原文:pandas.pydata.org/docs/user_guide/integer_na.html注意 IntegerArray 目前处于实验阶段。其 API 或实现可能会在没有警告的情况下发生变化。使用pandas.NA作为缺失值。 在处理缺失数据中,我们看到 pandas 主要使用NaN来…