您当前的位置:首页 > 电脑百科 > 数据库 > 百科

SpringBoot整合Druid进行SQL监控、SQL慢查询

时间:2023-09-01 13:32:27  来源:微信公众号  作者:小王博客基地

一、前言

当我们在企业开发时,数据库连接池是一个至关重要的组成部分。一个优秀的数据库连接池可以显著提高应用程序的性能和可伸缩性。在JAVA生态系统中,有很多连接池:Druid、HikariCP、C3P0等等,大部分都是使用Druid或者SpringBoot默认HikariCP!

Druid有完整的SQL监控平台,下面来介绍和搭建一下吧!

二、Druid概念

  • Druid:Druid是一个开源的数据库连接池和监控工具,支持连接池、SQL监控、性能调优、防火墙、SQL注入等功能。
  • Druid数据源:Druid提供了一个高性能的数据库连接池,可以在应用程序中使用Druid数据源来管理数据库连接。
  • SQL监控:Druid可以监控应用程序中的SQL查询执行情况,包括查询执行时间、执行次数等信息,并将其显示在监控页面上。
  • 性能调优:Druid提供了一些性能调优功能,如连接池的配置和管理、慢SQL日志等,帮助开发者优化数据库访问性能。

三、Druid优缺点

1、优点

  • 高性能:Druid连接池是一个高性能的连接池,可以有效地管理数据库连接,提高应用程序的性能。
  • 监控功能:Druid提供了丰富的监控功能,可以监控SQL执行情况、连接池状态等,帮助开发者及时发现和解决性能问题。
  • 灵活配置:Druid提供了丰富的配置选项,可以根据应用程序的需求进行灵活配置。
  • 安全性:Druid提供了防火墙功能,可以阻止恶意SQL注入攻击。

2、缺点

  • 依赖性:将Druid引入项目会增加项目的依赖,可能会影响构建和部署的复杂性。
  • 监控页面广告:Druid的监控页面上可能会显示广告,有些用户可能不喜欢这一点。

四、整合SpringBoot

1、导入依赖

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.2.15</version>
</dependency>

2、配置yaml

为了方便打印慢SQL我们把慢SQL时间调的小一点。

server:
  port: 8087
spring:
  datasource:
    #使用阿里的Druid
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.MySQL.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/test?serverTimezone=UTC
    username: root
    password:
    druid:
      statViewServlet: # Druid监控页面配置
        enabled: true # 启用Druid监控页面
        login-username: root # 监控页面登录用户名
        login-password: root # 监控页面登录密码
        url-pattern: /druid/* # 监控页面的访问URL路径
      web-stat-filter: # Druid Web统计过滤器配置
        enabled: true # 启用Web统计过滤器
        session-stat-enable: true # 启用会话统计功能
        session-stat-max-count: 1000 # 最大会话统计数量
      filter: # Druid过滤器配置
        stat: # SQL统计过滤器配置
          enabled: true # 启用SQL统计过滤器
          log-slow-sql: true # 启用慢SQL日志记录
          slow-sql-millis: 10 # 慢SQL的执行时间阈值(单位:毫秒)

MyBatis-plus:
  configuration:
    log-impl: org.Apache.ibatis.logging.stdout.StdOutImpl

「强烈注意」:Spring Boot 2.X 版本不再支持配置继承,多数据源的话每个数据源的所有配置都需要单独配置,否则配置不会生效!

详情可以去官方Github上看一下文档:

Druid官方文档:https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter

3、测试

实体类什么的都省略了。

@GetMApping("/listTest")
public Result listTest(){
    return Result.success(testService.list(Wrappers.<Test>lambdaQuery().like(Test::getName, "d方")));
}

4、监控页面

访问路径:http://localhost:8087/druid/index.html

点击SQL监控,查看SQL执行的耗时情况,广告很显眼,刚刚也说了这是缺点,觉得不能忍受的可以去掉,百度一搜全是,这里就不展示了哈!

在日志里也会打印:

五、总结

这样就简单的完成了SQL监控、慢SQL的查看,进而能够进行优化,提高系统效率!功能其实挺多的,大家可以挨个点开看看,要开启Spring监控要使用AOP对特定的接口做单独的监控!



Tags:SpringBoot   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
详解基于SpringBoot的WebSocket应用开发
在现代Web应用中,实时交互和数据推送的需求日益增长。WebSocket协议作为一种全双工通信协议,允许服务端与客户端之间建立持久性的连接,实现实时、双向的数据传输,极大地提升了用...【详细内容】
2024-01-30  Search: SpringBoot  点击:(10)  评论:(0)  加入收藏
SpringBoot如何实现缓存预热?
缓存预热是指在 Spring Boot 项目启动时,预先将数据加载到缓存系统(如 Redis)中的一种机制。那么问题来了,在 Spring Boot 项目启动之后,在什么时候?在哪里可以将数据加载到缓存系...【详细内容】
2024-01-19  Search: SpringBoot  点击:(86)  评论:(0)  加入收藏
SpringBoot3+Vue3 开发高并发秒杀抢购系统
开发高并发秒杀抢购系统:使用SpringBoot3+Vue3的实践之旅随着互联网技术的发展,电商行业对秒杀抢购系统的需求越来越高。为了满足这种高并发、高流量的场景,我们决定使用Spring...【详细内容】
2024-01-14  Search: SpringBoot  点击:(90)  评论:(0)  加入收藏
公司用了六年的 SpringBoot 项目部署方案,稳得一批!
本篇和大家分享的是springboot打包并结合shell脚本命令部署,重点在分享一个shell程序启动工具,希望能便利工作。 profiles指定不同环境的配置 maven-assembly-plugin打发布压...【详细内容】
2024-01-10  Search: SpringBoot  点击:(163)  评论:(0)  加入收藏
简易版的SpringBoot是如何实现的!!!
SpringBoot作为目前最流行的框架之一,同时是每个程序员必须掌握的知识,其提供了丰富的功能模块和开箱即用的特性,极大地提高了开发效率和降低了学习成本,使得开发人员能够更专注...【详细内容】
2023-12-29  Search: SpringBoot  点击:(132)  评论:(0)  加入收藏
用 SpringBoot+Redis 解决海量重复提交问题
前言 一:搭建redis的服务Api 二:自定义注解AutoIdempotent 三:token创建和检验 四:拦截器的配置 五:测试用例 六:总结前言:在实际的开发项目中,一个对外暴露的接口往往会面临很多...【详细内容】
2023-12-20  Search: SpringBoot  点击:(53)  评论:(0)  加入收藏
SpringBoot中如何优雅地个性化定制Jackson
当使用 JSON 格式时,Spring Boot 将使用ObjectMapper实例来序列化响应和反序列化请求。在本教程中,我们将了解配置序列化和反序列化选项的最常用方法。一、默认配置默认情况下...【详细内容】
2023-12-20  Search: SpringBoot  点击:(132)  评论:(0)  加入收藏
springboot-如何集成Validation进行参数校验
一、步骤概览 二、步骤说明1.引入依赖包在 pom.xml 文件中引入 validation 组件,它提供了在 Spring Boot 应用程序中进行参数校验的支持。<!-- WEB 程序依赖包 --><dependen...【详细内容】
2023-12-13  Search: SpringBoot  点击:(156)  评论:(0)  加入收藏
优雅的springboot参数校验,你学会了吗?
前言在后端的接口开发过程,实际上每一个接口都或多或少有不同规则的参数校验,有一些是基础校验,如非空校验、长度校验、大小校验、格式校验;也有一些校验是业务校验,如学号不能重...【详细内容】
2023-11-29  Search: SpringBoot  点击:(198)  评论:(0)  加入收藏
Springboot扩展点之BeanDefinitionRegistryPostProcessor,你学会了吗?
前言通过这篇文章来大家分享一下,另外一个Springboot的扩展点BeanDefinitionRegistryPostProcessor,一般称这类扩展点为容器级后置处理器,另外一类是Bean级的后置处理器;容器级...【详细内容】
2023-11-27  Search: SpringBoot  点击:(174)  评论:(0)  加入收藏
▌简易百科推荐
向量数据库落地实践
本文基于京东内部向量数据库vearch进行实践。Vearch 是对大规模深度学习向量进行高性能相似搜索的弹性分布式系统。详见: https://github.com/vearch/zh_docs/blob/v3.3.X/do...【详细内容】
2024-04-03  京东云开发者    Tags:向量数据库   点击:(4)  评论:(0)  加入收藏
原来 SQL 函数是可以内联的!
介绍在某些情况下,SQL 函数(即指定LANGUAGE SQL)会将其函数体内联到调用它的查询中,而不是直接调用。这可以带来显著的性能提升,因为函数体可以暴露给调用查询的规划器,从而规划器...【详细内容】
2024-04-03  红石PG  微信公众号  Tags:SQL 函数   点击:(3)  评论:(0)  加入收藏
如何正确选择NoSQL数据库
译者 | 陈峻审校 | 重楼Allied Market Research最近发布的一份报告指出,业界对于NoSQL数据库的需求正在持续上升。2022年,全球NoSQL市场的销售额已达73亿美元,预计到2032年将达...【详细内容】
2024-03-28    51CTO  Tags:NoSQL   点击:(13)  评论:(0)  加入收藏
为什么数据库连接池不采用 IO 多路复用?
这是一个非常好的问题。IO多路复用被视为是非常好的性能助力器。但是一般我们在使用DB时,还是经常性采用c3p0,tomcat connection pool等技术来与DB连接,哪怕整个程序已经变成以...【详细内容】
2024-03-27  dbaplus社群    Tags:数据库连接池   点击:(12)  评论:(0)  加入收藏
八个常见的数据可视化错误以及如何避免它们
在当今以数据驱动为主导的世界里,清晰且具有洞察力的数据可视化至关重要。然而,在创建数据可视化时很容易犯错误,这可能导致对数据的错误解读。本文将探讨一些常见的糟糕数据可...【详细内容】
2024-03-26  DeepHub IMBA  微信公众号  Tags:数据可视化   点击:(6)  评论:(0)  加入收藏
到底有没有必要分库分表,如何考量的
关于是否需要进行分库分表,可以根据以下考量因素来决定: 数据量和负载:如果数据量巨大且负载压力较大,单一库单一表可能无法满足性能需求,考虑分库分表。 数据增长:预估数据增长...【详细内容】
2024-03-20  码上遇见你  微信公众号  Tags:分库分表   点击:(13)  评论:(0)  加入收藏
在 SQL 中写了 in 和 not in,技术总监说要炒了我……
WHY?IN 和 NOT IN 是比较常用的关键字,为什么要尽量避免呢?1、效率低项目中遇到这么个情况:t1表 和 t2表 都是150w条数据,600M的样子,都不算大。但是这样一句查询 &darr;select *...【详细内容】
2024-03-18  dbaplus社群    Tags:SQL   点击:(5)  评论:(0)  加入收藏
应对慢SQL的致胜法宝:7大实例剖析+优化原则
大促备战,最大的隐患项之一就是慢SQL,对于服务平稳运行带来的破坏性最大,也是日常工作中经常带来整个应用抖动的最大隐患,在日常开发中如何避免出现慢SQL,出现了慢SQL应该按照什...【详细内容】
2024-03-14  京东云开发者    Tags:慢SQL   点击:(4)  评论:(0)  加入收藏
过去一年,我看到了数据库领域的十大发展趋势
作者 | 朱洁策划 | 李冬梅过去一年,行业信心跌至冰点2022 年中,红衫的一篇《适应与忍耐》的报告,对公司经营提出了预警,让各个公司保持现金流,重整团队,想办法增加盈利。这篇报告...【详细内容】
2024-03-12    InfoQ  Tags:数据库   点击:(26)  评论:(0)  加入收藏
SQL优化的七个方法,你会哪个?
一、插入数据优化 普通插入:在平时我们执行insert语句的时候,可能都是一条一条数据插入进去的,就像下面这样。INSERT INTO `department` VALUES(1, &#39;研发部(RD)&#39;, &#39...【详细内容】
2024-03-07  程序员恰恰  微信公众号  Tags:SQL优化   点击:(19)  评论:(0)  加入收藏
站内最新
站内热门
站内头条