一个比 c3p0 快 200 倍的数据库连接池,这么牛?

常用四大连接池集合 常用四大连接池集合c3p0,dbcp,druid,HikariCP,内有四大连接池的使用方法,配置方法,以及它们之间的比较和介绍,和spring继承等配置方法。 c3p0 太古老,代码及其复杂,不利于维护。貌似都比它强。 dbcp 是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件。 druid 功能比较全面,且扩展性较好,比较方便对jdbc接口进行监控跟踪等。 HikariCP 光连接池,速度性能最好 立即下载
  • 作者:jianzh5

  • https://hacpai.com/article/1582096971127

什么是数据库连接池

连接池是一种常用的技术,为什么需要连接池呢?这个需要从 TCP 说起。假如我们的服务器跟数据库没有部署在同一台机器,那么,服务器每次查询数据库都要先建立连接,一般都是 TCP 链接,建立连接就需要 3 次握手了,假设后台服务跟数据库的单程的访问时间需要 10ms,那么光是建立连接就花了 30ms,并且 TCP 还有慢启动的机制,实际上一次查询可能还不止 1 次 TCP 来回,查询效率就会大大降低。

为什么需要连接池

为了解决上述问题,我们就需要维护一些长链接,这样就不用每次都去建立连接,毕竟建立连接除了占用时间,还需要一些其他的系统资源。另外的好处,连接池让我们更加容易地管理,一方面是可以避免数据库资源都被某几个 API 占据,另一方面也可以避免资源泄露。

什么是 HikariCP

HikariCP 是由在日本生活的美国人程序员开源的一个数据库连接池组件,代码非常轻量,并且速度非常的快。根据官方提供的数据,在 i7, 开启 32 个线程 32 个连接的情况下,进行随机数据库读写操作,HikariCP 的速度是现在常用的 C3P0 数据库连接池的数百倍。在 SpringBoot2.0 中,官方也是推荐使用 HikariCP。

为什么 HikariCP 会那么快

  1. 字节码更加精简,所以可以加载更多代码到缓存。

  2. 实现了一个无锁的集合类型,来减少并发造成的资源竞争。

  3. 使用了自定义的数组类型,相对与 ArrayList 极大地提升了性能。

  4. 针对 CPU 的时间片算法进行优化,尽可能在一个时间片里面完成各种操作。

与 Druid 对比

在 GitHub 上有网友贴出了阿里巴巴 Druid 与 hikari 的对比,认为 hikari 在性能上是完全秒杀阿里巴巴的 Druid 连接池的。对此,阿里的工程师也做了一定的回应,说 Druid 的性能稍微差点是锁机制的不同,并且 Druid 提供了更丰富的功能,两者的侧重点不一样。

如何选择

选择哪一款就见仁见智了,不过两款都是开源产品,阿里的 Druid 有中文的开源社区,交流起来更加方便,并且经过阿里多个系统的实验,想必也是非常的稳定,而 Hikari 是 SpringBoot2.0 默认的连接池,全世界使用范围也非常广,对于大部分业务来说,使用哪一款都是差不多的,毕竟性能瓶颈一般都不在连接池。大家可根据自己的喜好自由选择。

(完)

精选:2020年最新的常问企业面试题大全以及答案

推荐阅读:

为什么建议使用你 LocalDateTime ,而不是 Date?

答应我,别再写上千行的类了好吗

SpringBoot实现过滤器、拦截器与切片

好文!必须点赞
c3p0简介 c3p0简介 关于c3p0的一些介绍,文档没有学习内容,仅做了解使用 立即下载

相关推荐

三大主流数据库连接

sql server,mysql,oracle

详细分析C#数据库连接池

当数据库操作和访问频繁的时候,减少创建连接和打开连接所耗的时间,提升数据库服务器的性能。 这里将详细分析C#数据库连接池。

技术天地 1804

机器学习预测土壤养分:从电导率、pH到随机森林与神经网络的农业实践

在智慧农业与精准农业领域,机器学习已成为处理复杂农业数据、挖掘潜在规律的关键技术。其核心原理在于通过算法从多维数据中自动学习特征与目标变量之间的映射关系,尤其擅长捕捉非线性关联。这项技术的核心价值在于能够将传统上依赖昂贵、耗时实验室分析的问题(如土壤养分检测),转化为基于易获取传感器数据(如电导率、pH值)的快速、低成本预测任务,为农业生产的实时决策与资源优化提供了全新可能。其典型应用场景包括作物生长监测、产量预测以及精准施肥管理等。本文聚焦于利用随机森林和神经网络等回归算法,构建通过土壤物理参数预测氮磷钾

weixin_33693070的博客 670

主流的数据库连接池

1.数据库连接池概述 数据库连接的建立是一种耗时、性能低、代价高的操作,频繁的数据库连接的建立和关闭极大的影响了系统的性能。数据库连接池是系统初始化过程中创建一定数量的数据库连接放于连接池中,当程序需要访问数据库时,不再建立一个新的连接,而是从连接池中取出一个已建立的空闲连接,使用完毕后,程序将连接归还到连接池中,供其他请求使用,从而实现的资源的共享,连接的建立、断开都由连接池自身来管理。 数据库连接池为系统的运行带来了以下优势:昂贵的数据库连接资源得到重用;减少了数据库连接建立和释放的时间开销..

jarniyy的博客 7842

RPMsg:协议简介

两台计算机可以通过TCP/IP进行通信,那么同一颗芯片上的两个核心怎么通信呢?

SunnyZhou-1024的博客 1万+

temu登录接口逆向分析(含Py纯算)

【代码】temu登录接口逆向分析(含Py纯算)

数据精灵喵 1948

各主流数据库连接池比较

Tomcat从7.0开始叫做Tomcat jdbc pool,基于 Tomcat JULI ,使用Tomcat日志框架, 完全兼容dbcp , 异步 方式获取连接,支持高并发应用环境,核心文件 8个 ,支持 JMX ,支持XA Connection。单独使用dbcp需要3个包:common-dbcp.jar,common-pool.jar,common-collections.jar,预先将数据库连接放内存中,建立数据库连接时,直接到连接池中申请,用完放回。单线程,并发量低,性能不好,适用于小型系统。

sdujava2011 1084

fast-lio系列改进版本

2.回环检测的优化结果,更新到FAST-LIO2的当前帧位姿中,幷进行ikdtree的重构,进而更新submap。其它的效果还不清楚,实测lio部分稳定性很好。用fast-lio_slam就很稳定。融合了fast-lio2和sc-pgo,两部分分开运行,SC-PGO从FAST-LIO2节点获取里程计和激光雷达点云主题。的作者kim在FAST-LIO2的基础上,添加SC-PGO模块,通过加入ScanContext全局描述子,进行回环修正,SC-PGO模块与FAST-LIO2解耦,非常方便,很优秀的工作。

z1872385的博客 3189

开源的连接池技术DBCP与c3p0

开源的连接池技术 一、概叙 Sun公司约定: 如果是连接池技术,需要实现一个接口! javax.sql.DataSource;   二、连接池: DBCP C3P0 三、DBCP连接池: 3.1简介: DBCP 是 Apache 软件基金组织下的开源连接池实现,使用DBCP数据源,应用程序应   3.2使用的jar包 在系统中增加如下两个 jar 文件: Com

LFSenior 3993

2.0 电子凸轮 西门子1500电子凸轮使用研究1

本文研究了S7-1500T电子凸轮同步控制技术,通过仿真实验得出以下结论:1)通过比例系数可调整凸轮曲线形状;2)解除同步需调用从轴其他运动指令;3)详细阐述了凸轮同步的5个实施步骤。重点分析了三种同步类型(主值距离同步、动态参数同步和直接同步)的特点及应用场景,并探讨了缩放系数、偏移量等参数对凸轮曲线的影响。同时介绍了凸轮应用模式及常见异常处理方法,为工程应用提供了重要参考。

qq_34047402的博客 811

基于STC8G1K08A单片机的EC11旋转编码器控制(江科大同款,代码可直接使用)

本文介绍了STC8G系列单片机与EC11旋转编码器的接口实现方案。硬件方面详细说明了EC11编码器的机械结构、电气特性及与单片机的典型连接电路,包括上拉电阻和消抖设计。软件部分重点阐述了状态检测算法,通过状态机和查找表实现方向判断,采用中断方式检测信号变化,并配合定时器进行软件消抖处理。文章还提供了完整的代码实现,包括GPIO初始化、中断服务函数、状态转换逻辑等关键模块,展示了如何通过串口输出验证旋转计数。最后讨论了抗抖动优化、高低速应用场景等实际问题解决方案。该方案在菜单导航、参数调节等场景中具有实用价值

weixin_74013772的博客 324

数据库的连接池有哪些

Apache Commons DBCP:Apache Commons DBCP是一个流行的开源数据库连接池,它提供了一组可配置的参数来管理连接池的大小、最大活动连接数、最大空闲连接数等。Tomcat JDBC Pool:Tomcat JDBC Pool是Apache Tomcat服务器的官方数据库连接池,它提供了高性能和可靠性,并且与Tomcat服务器紧密集成。C3P0:C3P0是另一个常用的Java数据库连接池,它支持连接池的自动管理和连接的重用。它还支持连接池的动态调整和连接的自动回收。

qq_36042938的博客 1123

微信小程序 - 详细实现打开跳转第三方 H5 网页链接,在微信小程序内直接跳转打开第三方网站链接详细教程(支持跳转公众号文章等,直接复制代码即可)

小程序跳转h5,小程序-Taro小程序中打开h5页面链接,...小程序跳转h5链接(web-view)_微信小程序,小程序如何跳转h5页面,小程序跳转到第三方H5网页,微信小程序跳转第三方H5的方法,小程序-实现怎么跳转打开H5网页链接(或跳转至公众号文章,打开第三方网站,放校验文件,怎么配置业务域名,校验文件验证域名,把校验文件放到对面网站,别人的服务器也打不开没权限怎么放呢,勾选不校验合法域名,txt,打不开别人的网页怎么办,真机调试打不开,无法跳转,有什么其他办法不放校验文件吗,后台配置,怎么

🏆 前端领域优质创作者 3万+

一个比 c3p0 快200倍的数据库连接池,这么牛?

程序员的成长之路互联网/程序员/技术/资料共享关注阅读本文大概需要 2 分钟。来自:网络什么是数据库连接池连接池是一种常用的技术,为什么需要连接池呢?这个需要从TCP说起。假如我们的服...

良月柒 473

Doris数据过期策略:自动清理历史数据

在数据的世界里,就像我们的房间会堆满各种东西一样,数据库也会积累大量的数据。随着时间的推移,很多历史数据可能不再经常被使用,但它们却占据着宝贵的存储空间。Doris是一款强大的数据库,为了让它能更高效地运行,合理地管理数据,我们就需要一种方法来自动清理那些不再需要的历史数据。本文的目的就是详细介绍Doris的数据过期策略,让大家知道如何利用这个策略来实现自动清理历史数据。范围涵盖了从基本概念到实际操作的各个方面。本文会先介绍一些和Doris数据过期策略相关的术语,让大家对一些专业词汇有个基本的了解。

软件工程实践的博客 559

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

c3p0连接池配置连接不上mysql_一个比 c3p0 快 200 倍的数据库连接池,这么牛?

为什么需要连接池什么是 HikariCP为什么 HikariCP 会那么快与 Druid 对比如何选择《Java 2019 超神之路》《Dubbo 实现原理与源码解析 —— 精品合集》《Spring 实现原理与源码解析 —— 精品合集》《MyBatis 实现原理与源码解析 —— 精品合集》《Spring MVC 实现原理与源码解析 —— 精品合集》《Spring Boot 实现原理与源码解析 ——...

weixin_39637919的博客 132

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Java常用连接池 (HikariCP, Tomcat Pool, Druid) 的配置和比较

在应用程序中,每次需要与数据库交互时都建立一个新的数据库连接是非常耗时且消耗资源的操作(涉及网络通信、数据库认证、资源分配等)。连接池通过预先创建并维护一组数据库连接,当应用程序需要连接时,直接从池中获取一个可用连接;使用完毕后,不是关闭连接,而是将其归还到池中,以供后续请求复用。这极大地提高了应用程序的性能和响应速度,并减少了数据库服务器的负载。特性HikariCPDruid性能极高(通常最优)良好良好 (监控开启时可能略低)稳定性高 (设计简洁)高 (广泛使用)高 (功能复杂需仔细配置)

专注于技术分享 1131

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

JDBC常见的几种连接池&如何使用

JDBC常见的几种连接池&如何使用

weixin_72083767的博客 2512

连接池以及常用连接池

连接池基本的思想是在系统初始化的时候,将数据库连接作为对象存储在内存中,当用户需要访问数据库时,并非建立一个新的连接,而是从连接池中取出一个已建立的空闲连接对象。 常用连接池:DBCP连接池,C3p0连接池,Druid连接池

@王某人 3112

常用连接池

常用连接池 1. C3P0连接池 c3p0介绍: C3P0开源免费的连接池!目前使用它的开源项目有:Spring、Hibernate等。使用第三方工具需要导入jar包,c3p0使用时还需要添加配置文件c3p0-config.xml. 使用C3P0需要添加c3p0-0.9.1.2.jar c3p0的使用(硬编码) public class Test { public static void main(String[] args) throws Exception{ /* c3p

weixin_49578680的博客 124
上一篇: ​飞机上用的是什么操作系统?
下一篇: Ngxix | 超详细!Nginx 日志配置实践
Java思维导图
博客等级 码龄10年 306粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值