自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SpringBoot整合Druid進行SQL監(jiān)控、SQL慢查詢

開發(fā) 后端
在Java生態(tài)系統(tǒng)中,有很多連接池:Druid、HikariCP、C3P0等等,大部分都是使用Druid或者SpringBoot默認HikariCP!Druid有完整的SQL監(jiān)控平臺,下面來介紹和搭建一下吧!

一、前言

當我們在企業(yè)開發(fā)時,數(shù)據(jù)庫連接池是一個至關(guān)重要的組成部分。一個優(yōu)秀的數(shù)據(jù)庫連接池可以顯著提高應(yīng)用程序的性能和可伸縮性。在Java生態(tài)系統(tǒng)中,有很多連接池:Druid、HikariCP、C3P0等等,大部分都是使用Druid或者SpringBoot默認HikariCP!

Druid有完整的SQL監(jiān)控平臺,下面來介紹和搭建一下吧!

二、Druid概念

  • Druid:Druid是一個開源的數(shù)據(jù)庫連接池和監(jiān)控工具,支持連接池、SQL監(jiān)控、性能調(diào)優(yōu)、防火墻、SQL注入等功能。
  • Druid數(shù)據(jù)源:Druid提供了一個高性能的數(shù)據(jù)庫連接池,可以在應(yīng)用程序中使用Druid數(shù)據(jù)源來管理數(shù)據(jù)庫連接。
  • SQL監(jiān)控:Druid可以監(jiān)控應(yīng)用程序中的SQL查詢執(zhí)行情況,包括查詢執(zhí)行時間、執(zhí)行次數(shù)等信息,并將其顯示在監(jiān)控頁面上。
  • 性能調(diào)優(yōu):Druid提供了一些性能調(diào)優(yōu)功能,如連接池的配置和管理、慢SQL日志等,幫助開發(fā)者優(yōu)化數(shù)據(jù)庫訪問性能。

三、Druid優(yōu)缺點

1、優(yōu)點

  • 高性能:Druid連接池是一個高性能的連接池,可以有效地管理數(shù)據(jù)庫連接,提高應(yīng)用程序的性能。
  • 監(jiān)控功能:Druid提供了豐富的監(jiān)控功能,可以監(jiān)控SQL執(zhí)行情況、連接池狀態(tài)等,幫助開發(fā)者及時發(fā)現(xiàn)和解決性能問題。
  • 靈活配置:Druid提供了豐富的配置選項,可以根據(jù)應(yīng)用程序的需求進行靈活配置。
  • 安全性:Druid提供了防火墻功能,可以阻止惡意SQL注入攻擊。

2、缺點

  • 依賴性:將Druid引入項目會增加項目的依賴,可能會影響構(gòu)建和部署的復雜性。
  • 監(jiān)控頁面廣告:Druid的監(jiān)控頁面上可能會顯示廣告,有些用戶可能不喜歡這一點。

四、整合SpringBoot

1、導入依賴

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

2、配置yaml

為了方便打印慢SQL我們把慢SQL時間調(diào)的小一點。

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監(jiān)控頁面配置
        enabled: true # 啟用Druid監(jiān)控頁面
        login-username: root # 監(jiān)控頁面登錄用戶名
        login-password: root # 監(jiān)控頁面登錄密碼
        url-pattern: /druid/* # 監(jiān)控頁面的訪問URL路徑
      web-stat-filter: # Druid Web統(tǒng)計過濾器配置
        enabled: true # 啟用Web統(tǒng)計過濾器
        session-stat-enable: true # 啟用會話統(tǒng)計功能
        session-stat-max-count: 1000 # 最大會話統(tǒng)計數(shù)量
      filter: # Druid過濾器配置
        stat: # SQL統(tǒng)計過濾器配置
          enabled: true # 啟用SQL統(tǒng)計過濾器
          log-slow-sql: true # 啟用慢SQL日志記錄
          slow-sql-millis: 10 # 慢SQL的執(zhí)行時間閾值(單位:毫秒)

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

「強烈注意」:Spring Boot 2.X 版本不再支持配置繼承,多數(shù)據(jù)源的話每個數(shù)據(jù)源的所有配置都需要單獨配置,否則配置不會生效!

詳情可以去官方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、監(jiān)控頁面

訪問路徑:http://localhost:8087/druid/index.html。

點擊SQL監(jiān)控,查看SQL執(zhí)行的耗時情況,廣告很顯眼,剛剛也說了這是缺點,覺得不能忍受的可以去掉,百度一搜全是,這里就不展示了哈!

在日志里也會打印:

五、總結(jié)

這樣就簡單的完成了SQL監(jiān)控、慢SQL的查看,進而能夠進行優(yōu)化,提高系統(tǒng)效率!功能其實挺多的,大家可以挨個點開看看,要開啟Spring監(jiān)控要使用AOP對特定的接口做單獨的監(jiān)控!

責任編輯:姜華 來源: 小王博客基地
相關(guān)推薦

2022-02-21 07:48:54

Mysql數(shù)據(jù)庫SpringBoot

2024-11-28 09:51:35

SQL日志Go項目

2022-06-01 07:33:21

ES查詢搜索

2011-04-02 16:45:58

SQL Server查詢優(yōu)化

2011-04-02 16:39:53

SQL Server查詢

2022-02-17 13:32:04

SpringBootSQL連接池

2017-05-23 16:26:26

MySQL優(yōu)化處理

2021-08-03 17:15:19

SQL 慢 SQL

2024-03-25 07:30:03

MySQL數(shù)據(jù)庫SQL日志

2021-07-30 07:28:16

SQL優(yōu)化日志

2010-11-25 11:07:28

MySQL慢查詢

2025-04-07 07:20:35

SQL慢查詢性能

2010-06-18 12:37:04

SQL Server查

2023-10-18 18:31:04

SQL查詢數(shù)據(jù)

2010-09-07 09:45:48

SQL語句

2010-07-09 09:08:43

2022-02-07 19:17:56

SQL系統(tǒng)MySQL

2022-07-14 14:46:51

數(shù)據(jù)庫SQL系統(tǒng)設(shè)計

2020-05-12 20:40:58

SQL慢查詢優(yōu)化數(shù)據(jù)庫

2020-02-10 10:15:31

技術(shù)研發(fā)指標
點贊
收藏

51CTO技術(shù)棧公眾號