数据库数据库连接:1、短连接 2、长连接  3、连接池介绍和区别

本文介绍了数据库连接的三种方式,包括短连接、长连接和连接池。短连接每次操作都需打开和关闭连接;长连接建立后一直打开,可重复使用;连接池能加速连接、降低服务器负载。还对比了长连接和连接池的区别,并介绍了jdbc、dbcp、c3p0、hikariCP等常见连接池。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


一、数据库连接:1、短连接 2、长连接  3、连接池

二、短连接
短连接是指程序与数据库通信时建立的连接,执行操作后,马上就关闭。
短连接简单地来说,就是每次操作数据库,都要打开和关闭数据连接,基本操作是:连接,数据传输,关闭连接。

三、长连接
长连接是指程序之间的连接建立后,就一直打开,被后续程序重复使用,
使用长连接的初衷是减少连接的开销。当收到一个永久连接的请求时,检查是否已经存在一个相同的永久连接,存在则重复使用,不存在则重新建立一个连接。
四、连接池
数据库连接池是一些网络代理服务或应用服务器实现的特性,实现一个持久连接的池,允许其他程序,客户端来连接,这个连接池将被所有连接的客户端共享使用。
连接池可以加速连接,也可以减少数据连接,降低数据服务器的负载。

五、长连接和连接池的区别
长连接是一些驱动,驱动框架,ORM工具的特性,有驱动来保持句柄的打开,以便后续数据库操作可以重复使用连接,
从而减少数据库的连接开销,而连接池是应用服务器的组件,它可以通过参数来配置累计额数,连接检测,连接的生命周期等。

六、连接池
1、jdbc
DriverManagerDataSource没有实现连接池化连接的机制,每次调用getConnection()获取新连接时,只是简单地创建一个新的连接。
所以,一般这种方式常用于开发时测试,不用于生产。
2、dbcp
spring框架推荐使用dbcp

3、c0p3
hibernate框架推荐使用c3p0。
c3p0与dbcp相比较,c3p0能够更好的支持高并发,但是在稳定性方面略逊于dpcp。
4、hikariCP
hikariCP连接池快于其他连接池的,原因是:
1、相对其他普通连接,在ConnectionProxy中使用ArrayList来存储Statement对象。
hikariCP改用Fatlist来存储对象,二其中的区别就是:ArrayList在每次执行get() 方法时,
都需要List的范围进行检查,而FastList不需要。
2.另外在Java代码中,很多关于Connection的操作,都是在使用完之后直接关闭连接,以前都是从头到尾遍历,来关闭对应的Connection,而HikariCP则是从尾部对Connection集合进行扫描,整体上来说,从尾部开始的性能更好一些。
3.内部使用一个无锁的集合来存储,并对其中的切换操作做了优化。
4.从字节码指令的角度去优化,连接池使用
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值