HikariCP与Druid对比

环境:springboot3、jdk17

1.HikariCP与Druid的对比

        HikariCP 与 Druid都是常用的数据库连接池实现,各有各的优点;

HikariCPDruid
性能目前性能最好的数据库连接池弱于HikariCP
功能功能简单功能丰富,提供了SQL执行日志、慢查询日志、监控、数据库统计等功能
易用性配置简单配置较多,适合需要复杂连接池管理的项目
连接池的生命周期启动、初始化与关闭较快启动时间较长
资源消耗资源消耗非常低

稍高于HikariCP 

  • HikariCP专注于性能,适合需要高效数据库连接池的项目;
  • Druid提供了更丰富的功能和监控,适用于需要数据库管理分析功能的企业级应用;

2. HikariCP与Druid的使用

2.1 HikariCP的使用

        由于HikariCP是springboot的默认数据库连接池,不需要单独添加依赖,只需配置相关配置就行;

spring:datasource:type: com.zaxxer.hikari.HikariDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&autoReconnect=trueusername: xxxxpassword: xxxxhikari:connection-timeout: 30000               # 等待连接池分配连接的最大时间(毫秒),超过这个时长还没有可用的连接,则会抛出SQLExceptionminimum-idle: 5                         # 最小连接数maximum-pool-size: 20                   # 最大连接数auto-commit: true                       # 自动提交idle-timeout: 600000                    # 连接超时的最大时长(毫秒),超时则会被释放(retired)pool-name: DataSourceHikariCP           # 连接池的名字max-lifetime: 3600000                   # 连接池的最大生命时长(毫秒),超时则会被释放(retired)connection-test-query: SELECT 1

2.2 Druid的使用

        导入依赖

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

        配置

spring:datasource:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=Asia/Shanghaiusername: xxxxpassword: xxxxdruid:# 初始化连接池的连接数量initial-size: 5# 最小空闲连接数min-idle: 5# 最大活跃连接数max-active: 20# 获取连接等待超时的时间max-wait: 30000# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒time-between-eviction-runs-millis: 60000# 配置一个连接在池中最小生存的时间,单位是毫秒min-evictable-idle-time-millis: 30000# 验证连接的 SQL 查询validation-query: SELECT 1# 是否在空闲时检测连接test-while-idle: true# 是否在获取连接时检测连接test-on-borrow: true# 是否在返回连接时检测连接test-on-return: false# 是否缓存 preparedStatementpool-prepared-statements: true# 每个连接的最大缓存 prepared statement 数量max-pool-prepared-statement-per-connection-size: 20# 配置监控统计拦截的 filtersfilters: stat,wall,log4j# 配置 stat 拦截器的属性stat:merge-sql: trueslow-sql-millis: 5000
  • filters:配置为 stat,wall,log4j,表示启用统计、防火墙和日志过滤器。
  • stat:配置统计拦截器的属性,merge-sql 用于合并 SQL 语句,slow-sql-millis 用于定义慢 SQL 的阈值。 
  • 小心 wall 过滤器,它是一个安全性过滤器,可能会对某些 SQL 查询造成限制。如果你不需要此过滤器来加强安全性,可以考虑去掉,避免不必要的性能开销。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/60020.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Enscape 4.2 安装教程(支持资源库)

软件介绍 Enscape 是专门为建筑、规划、景观及室内设计师打造的渲染产品&#xff0c;无需导入导出文件&#xff0c;在常用的软件内部即可看到逼真的渲染效果。 你无需了解记忆各种参数的用法&#xff0c;一切都是傻瓜式的一键渲染&#xff0c;你可以把精力更多地投入到设计中…

DBeaver工具连接Hive

DBeaver工具连接Hive 首先解压安装包dbeaver-ce-latest-x86_64-setup.zip,并安装dbeaver-ce-latest-x86_64-setup.exe; 安装Kerberos客户端4.1-amd64.msi; 查看集群节点/etc/hosts文件内容,并追加到C:\Windows\System32\drivers\etc\hosts; 下载集群用户keytab文件,并解压…

4.4 软件设计:UML顺序图

UML顺序图 1、 UML2、 UML顺序图2.1 顺序图组成对象生命线消息 2.2 顺序图和用例登录用例 2.3 顺序图建模顺序图建模参考策略建立顺序图的步骤建立顺序图的示例 3、面对对象的设计原则3.1 特点3.2 层次3.3 注意点类设计需要强内聚&#xff0c;弱耦合可重用性框架 1、 UML 统一…

云计算:定义、类型及对企业的影响

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 云计算&#xff1a;定义、类型及对企业的影响 云计算&#xff1a;定义、类型及对企业的影响 云计算&#xff1a;定义、类型及对企…

【FPGA开发】AXI-Lite总线协议解读、Verilog逻辑开发与仿真、Alex Forencich代码解读

目录 AXI是什么AXI是如何工作的AXI-Lite定义AXI-Lite的关键特性AXI-Lite信号列表AXI-Lite信号时序时钟和复位握手机制写请求通道&#xff08;AW&#xff09;写数据通道&#xff08;W&#xff09;写响应通道&#xff08;B&#xff09;读请求通道&#xff08;AR&#xff09;读数据…

场地预约系统(源码+文档+部署+讲解)

本文将深入解析“场地预约系统”的项目&#xff0c;探究其架构、功能以及技术栈&#xff0c;并分享获取完整源码的途径。 系统概述 本项目名称为场地预约系统&#xff0c;是一款方便用户进行场地预约的系统。该系统主要包括用户管理、分类管理、活动管理、场地管理、提现管理…

MYSQL——事务管理

什么是事务 在数据库使用者角度&#xff0c;事务就是完成一个事件。例如一个员工信息数据库&#xff0c;要完成员工离职的事件&#xff0c;可能需要很多操作&#xff0c;比如删除员工基本信息以及员工在公司的表现&#xff0c;薪资水平等。而这一系列的操作就是为了完成员工离…

计算机网络基本概念总结

IP地址 概念 使网络中的设备都有唯一的地址标识&#xff0c;用于表示其在网络中的位置。 格式 IP地址是一个32位的二进制数&#xff0c;通常被分割为4个8位二进制数&#xff08;也就是4个字节&#xff09;&#xff0c;如&#xff1a;01100100.00001000.00001010.00000110。通常…

MySQL系列之如何在Linux只安装客户端

导览 前言Q&#xff1a;如何安装一个Linux环境下的MySQL客户端一、准备文件1. 确认Server版本2. 选择Client安装文件 二、下载并安装1. 下载1.1 寻找文件1.2 文件说明 2. 安装2.1 上传至Linux服务器2.2 执行安装 三、连接验证1. 确认远程授权2. 建立远程连接 结语精彩回放 前言…

flink实战-- flink任务的火焰图如何使用

火焰图 Flame Graphs 是一种有效的可视化工具,可以帮助我们排查如下问题: 目前哪些方法正在消耗 CPU 资源?一个方法的消耗与其他方法相比如何?哪一系列的堆栈调用导致了特定方法的执行?y 轴表示调用栈,每一层都是一个函数。调用栈越深,火焰就越高,顶部就是正在执行的…

【css flex 多行均分有间隙布局】

小程序、web均可使用&#xff0c;我当前用的是小程序 <view class"job_tab_container flex_between"><view class"job_tab_item"></view><view class"job_tab_item"></view><view class"job_tab_item&qu…

高效实现多站点管理的策略与工具解读

内容概要 在当前的数字化环境中&#xff0c;多站点管理显得尤为重要。它不仅能帮助企业在多个市场中有效布局&#xff0c;还能促进资源的合理配置和利用。为了实现高效的多站点管理&#xff0c;首先需要了解其定义及重要性。多站点管理指的是企业在不同地理位置或市场上运营多…

C++STL容器详解——list

目录 一.list 1.list的介绍 2.为什么会有list? 二.list的常见接口 1.list的构造函数 2.list的遍历 3.迭代器类型 4.list的头插头删和尾插尾删 5.list任意位置的插入和删除 6.list的sort()及reverse() 7.迭代器失效 三.整体代码 一.list 1.list的介绍 list的文档说…

【Linux系统编程】第四十四弹---从TID到线程封装:全面掌握线程管理的核心技巧

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、tid是什么 1.1、理解库 1.2、理解tid 1.3、tid中线程局部存储 2、封装线程 2.1、基本结构 2.2、函数实现 2.3、使用…

WPF 打包

打包为单个exe文件直接运行 - - -版本.NET8 新建WPF项目 右键 - 发布 选择发布文件夹 选择发布文件夹 选择发布文件夹 配置 配置,保存 发布 WPF 打包为exe安装程序 示例 实现思路 引导项目中嵌入其它项目可运行目录的zip引导项目中解压zip文件到指定文件夹是…

percona tpc-c程序压测mysql8.0并绘图

1 概述 OLTP数据库选型一般会从稳定性、性能、易用性、官方文档等因素考虑。而在性能这因素&#xff0c;基准测试有sysbench和tpc-c&#xff08;tpc-e是tpc-c的升级版&#xff09;。sysbench的底层测试用例的表结构是简单的&#xff0c;并且不支持join&#xff0c;针对以上两个…

ArcGIS软件之“计算面积几何”地图制作

目录 一、消防站的泰森多边形ex12二、人口调查的泰森多边形三、人口调查的泰森多边形属性设置四、计算面积几何,用于求密度五、求密度六、给“现有中学”属性 R1赋值七、“现有中学”设置多环缓存区 并为它赋值八、“土地使用”为不同的功能区赋值九、三个图层相交十、计算面积…

【Web前端】使用 JSON 处理数据

JSON 是一种基于 JavaScript 对象语法的数据格式&#xff0c;由道格拉斯克罗克福特推广。尽管其语法源于 JavaScript&#xff0c;JSON 仍然是独立于 JavaScript 的&#xff0c;这也是为什么许多编程环境能够解析和生成 JSON 的原因。JSON 可以以对象或字符串的形式存在&#xf…

SMOTE算法深度解析及代码实现

SMOTE算法介绍 SMOTE算法是较为常用的数据增广算法&#xff0c;其核心思路是在少数类别样本内部进行数据合成&#xff0c;更具体的说&#xff0c;其后隐藏的猜想是假定样本 x 0 , x 1 , . . , x N x_0,x_1,..,x_N x0​,x1​,..,xN​都为同一类别&#xff0c;那么他们的线性组合…

基于Redis缓存机制实现高并发接口调试

创建接口 这里使用的是阿里云提供的接口服务直接做的测试&#xff0c;接口地址 curl http://localhost:8080/initData?tokenAppWithRedis 这里主要通过参数cacheFirstfalse和true来区分是否走缓存&#xff0c;正常的业务机制可能是通过后台代码逻辑自行控制的&#xff0c;这…