数据库连接的池化

数据库连接池通过复用已存在的连接,减少频繁创建和释放连接的开销,提高系统性能。它限制最大连接数,防止资源过度消耗,并在并发超出限制时采取丢弃请求或队列等待策略。队列处理时需设置超时,以防请求堆积导致系统崩溃。连接池是提升数据库应用效率的重要手段。

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

池化有什么好处?

数据库连接池的基本实现思路如上图所示,

1. 当存在空闲链接的时候,直接使用空闲连接。

2. 当没有空闲连接,并没有达到最大值时,创建新的连接。 

3. 当没有空闲连接,连接数也达到最大值,实行等待超时策略和重试策略。

 

池化时,数据库连接的生成和释放是这样的:

通过DataSource获取逻辑连接,当连接关闭的时候,并不是真正释放实际的数据库连接,而是重新放回池子。这样实现了物理数据库连接的复用,避免了来回的创建和释放带来的开销,减少了内存垃圾的生成。

 

此外,DataSource可以对最大连接数进行限制,并非无限制地无限递增,导致数据库连接数过大。

 

当并发请求数超过数据库最大连接数的时候,有如下处理策略:

1. 丢弃后续的请求(可用性降低,用户体验差)

2. 队列处理,并调大超时时间

使用队列时,需要为请求设置一个超时时间,否则会导致请求无限增长,导致系统资源枯竭。

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值