数据库连接池

为什么要使用数据库连接池?

数据库连接资源是非常昂贵的,特别是访问数据库需要通过网络的时候,更能体现。单纯的物理连接,会造成性能低下。所以引入了数据库连接池的概念,连接池尽可能的重用了资源,大大节省了内存。提高了程序的性能。

同时也可以对数据库连接池实现更加个性化的管理。

数据库连接池?

基本思想就是“缓冲池”。相当于架设在应用程序与数据库之前的一个桥梁。最开始的时候,我们直接从数据库中获取连接,现在我们从缓冲池中获取连接。同时对于这个“缓冲池”可以进行控制。

数据库连接池工作原理?

连接池的工作原理主要由三部分组成,分别为连接池的建立、连接池中连接的使用管理、连接池的关闭。

连接池的建立

一般在系统初始化时,连接池会根据系统配置建立,并在池中创建了几个连接对象,以便使用时能从连接池中获取。连接池中的连接不能随意创建和关闭,这样避免了连接随意建立和关闭造成的系统开销。

连接池的管理

连接池管理策略是连接池机制的核心,连接池内连接的分配和释放对系统的性能有很大的影响。

其管理策略是:

当客户请求数据库连接时,首先查看连接池中是否有空闲连接,如果存在空闲连接,则将连接分配给客户使用;

如果没有空闲连接,则查看当前所开的连接数是否已经达到最大连接数,如果没达到就重新创建一个连接给请求的客户;

如果达到就按设定的最大等待时间进行等待,如果超出最大等待时间,则抛出异常给客户。

当客户释放数据库连接时,先判断该连接的引用次数是否超过了规定值,如果超过就从连接池中删除该连接,否则保留为其他客户服务。

该策略保证了数据库连接的有效复用,避免频繁的建立、释放连接所带来的系统资源开销。

连接池的关闭

当应用程序退出时,关闭连接池中所有的连接,释放连接池相关的资源,该过程正好与创建相反。

常见的数据库连接池

C3P0

DBCP

用图说话

0%