连接池(学习笔记)

目录

一、什么是连接池

二、使用数据库连接池的目的

三、部分连接池介绍 


一、什么是连接池

连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程使用。常见的链接池分为socket链接池和数据库链接,在本次学习中主要讲数据库连接池

数据库连接池简称:dbcp(database connectionpool)就是保存了很多数据库连接对象的对象池。

数据库连接是一种关键的有限的昂贵资源,几乎所有应用都要用到数据库,一个数据库连接对象均对应一个物理数据库连接,每次操作都会打开一个物理连接,使用完后再关闭,也就是说会经常连接数据库打开关闭,这样经常连接会浪费大量的系统资源,和使系统性能低下,这在多用户网页的应用程序中尤为突出。

连接池的出现,很好解决了这个问题,连接池的原理就是:在程序启动前前先创建好足够多个数据库连接,并将这些连接组成一个连接池(就是指一个‘池’里放了很多半成品数据库连接对象),当我的系统需要操作数据库时,由应用程序动态地对池中的连接进行申请,使用和释放。对于多连接池中的连接数的并发请求,应该在请求队列中排队等待。并且应用程序可以根据连接池中连接的使用频率,动态地增加或减少连接池中的连接数,这些连接数都是可以在配置文件自己设置的。

二、使用数据库连接池的目的

1.尽可能多地重用消耗内存的资源,连接复用。通过建立一个数据库连接池以及一套连接使用管理策略,使得一个数据库连接可以得到高效、安全的复用,避免了数据库连接频繁建立、关闭的开销。

2.提高了服务器的服务效率,能够支持更多的客户服务,提高程序运行效率

3.同时,可以通过其自身的管理机制来监视数据库连接的数量,使用情况等等

连接池部分概念

最小连接数:是连接池一直保存的最大数据库连接数,所以如果应用程序对数据库连接使用不大,将会浪费大量数据库连接资源

最大连接数:连接池能申请到的最大连接数,如果数据库连接请求超过这个数,后面的数据库连接请求将会被送入等待队列中,会影响后续数据库操作。

空闲连接:长连接时,有一个最大保持时间,目的是在达到一定时间不工作后对资源进行回收

池化:(缓冲)在系统初始化时预先准备好资源,有请求时分配对象去使用,空闲时对此回收但不销毁,减少了对象的反复创建,销毁所话费的时间,这在高并发的情况下很吃资源。

无连接池与有连接池比较:


三、部分连接池介绍
 

在Java中开源的数据库连接池:

C3P0:是一个开放源代码的JDBC连接池

Proxool:一个Java SQL Drive驱动程序,提供了对选择其他类型的驱动程序的连接池封装

JaKarta DBCP:DBCP是一个依赖Jakartacommons-pool对象池机制的数据库连接池

DDConnectionBroker:是一个简单,轻量级的数据库连接池

DBPool:是一个高效,易配置的数据库连接池

XAPool:是一个XA数据库连接池

Primrose:是一个Java开发的数据库连接池

SmartPool:是一个连接池组件,它模仿应用服务器对象池的特性

目前spring Boot中默认支持的连接池有:dbcp,dbcp2,tomcat,hikari

数据库连接可以使用DataSource池自动进行配置

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值