• 💂 个人网站: IT知识小屋
  • 🤟 版权: 本文由【IT学习日记】原创、在CSDN首发、需要转载请联系博主
  • 💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦


写在前面

大家好,这里是IT学习日记。今日推荐项目:sql-analysis工具,获取方式在文后!

1000+优质开源项目推荐进度:66/1000。如需更多类型优质项目推荐,请在文章后留言。

项目简介

慢SQL是日常给线上系统带来抖动的最大隐患之一,特别是大促期间,如果出现慢SQL,破坏性不可估量!核心痛点是:无法提前发现慢SQL,可能恶化为慢SQL的语句、出现慢SQL后,无法快速止损。

**sql-analysis工具:区别于传统的依赖SQL执行耗时评估慢SQL的方法,它直接基于语法和索引进行前置分析,实时根据Explain分析结果分析,不仅能预防某些坏sql在上线后发现是慢sql,还能给出sql优化建议,可以大限度的避免线上产生慢sql。**同时支持动态对线上sql进行替换,让线上问题快速止损。

sql-analysis

解决方案

经过调研,现在市面上主流的SQL分析组件,核心动能都是在:慢SQL的分析和优化建议、SQL优化重写功能。

主要是偏运维方面的辅助功能,无法做到无侵入和应用代码集成,也同样无法解决核心痛点:慢sql提前分析预警和动态sql替换。

分析工具特点对比

sql-analysis工具提供的解决方案:

  • 尽量在上线之前定位到慢SQL,最好是开发和测试阶段

  • 线上出现慢SQL后,不仅可以通过修改SQL、添加索引等方式,还能能支持热更新方式替换SQL

工具特点

  • 核心优势:与传统的依赖SQL执行耗时来评估慢SQL的方法不同,它基于语法和索引的前置分析,不仅可以预防某些不良SQL在上线后才被发现是慢SQL,还能提供SQL优化建议,最大程度地避免线上出现慢SQL。同时,支持动态替换线上SQL,能够快速止损。

  • 性能:考虑到性能和不同使用场景,系统支持定制化配置,可以选择每个SQL仅检查一次或按指定时间间隔进行检查。SQL替换过程几乎无损耗。

性能

  • 扩展性:支持自定义扩展SQL评分规则和输出方式,便于未来扩展评分规则和以不同方式输出分析结果。

  • 成本:接入成本低,无代码侵入。

快速开始

  • 引入依赖
<dependency>
    <groupId>io.github.huht123.sql-analysis</groupId>
    <artifactId>sql-analysis</artifactId>
    <version>1.0.1</version>
</dependency>
  • 配置组件xml
<configuration>
    <plugins>
        <plugin interceptor="com.jd.sql.analysis.core.SqlAnalysisAspect" >
            <!-- 开启sql分析功能最简配置 -->
            <property name="analysisSwitch" value="true"/>

            <!-- 开启sql替换功能最简配置 -->
            <property name="sqlReplaceModelSwitch" value="true"/>
           
        </plugin>
    </plugins>
</configuration>

核心配置项

  • 实践使用方案

实践使用方案

源码获取&使用手册

点击下方的【IT学习日记】回复【资源】领取!

如果这篇文章对您有帮助,请一定帮我点个 “关注”“点赞”,这对我非常重要。我将会继续推荐更多优质项目和新闻。


Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐