如何理解--数据库连接池

原创 2011年01月19日 16:15:00

对于一个简单的数据库应用,由于对于数据库的访问不是很频繁。这时可以简单地在需要访问数据库时,就新创建一个连接,用完后就关闭它,这样做也不会带来什么明显的性能上的开销。但是对于一个复杂的数据库应用,情况就完全不同了。频繁的建立、关闭连接,会极大的减低系统的性能,因为对于连接的使用成了系统性能的瓶颈。 连接复用。通过建立一个数据库连接池以及一套连接使用管理策略,使得一个数据库连接可以得到高效、安全的复用,避免了数据库连接频繁建立、关闭的开销。   
  对于共享资源,有一个很著名的设计模式:资源池。该模式正是为了解决资源频繁分配、释放所造成的问题的。把该模式应用到数据库连接管理领域,就是建立一个数据库连接池,提供一套高效的连接分配、使用策略,最终目标是实现连接的高效、安全的复用。 
数据库连接池的基本原理是在内部对象池中维护一定数量的数据库连接,并对外暴露数据库连接获取和返回方法。如: 外部使用者可通过getConnection 方法获取连接,使用完毕后再通过releaseConnection 方法将连接返回,注意此时连接并没有关闭,而是由连接池管理器回收,并为下一次使用做好准备。 

数据库连接池技术带来的优势: 

1. 资源重用 

由于数据库连接得到重用,避免了频繁创建、释放连接引起的大量性能开销。在减少系统消耗的基础上,另一方面也增进了系统运行环境的平稳性(减少内存碎片以及数据库临时进程/线程的数量)。 

2. 更快的系统响应速度 

数据库连接池在初始化过程中,往往已经创建了若干数据库连接置于池中备用。此时连接的初始化工作均已完成。对于业务请求处理而言,直接利用现有可用连接,避免了数据库连接初始化和释放过程的时间开销,从而缩减了系统整体响应时间。 

3. 新的资源分配手段 

对于多应用共享同一数据库的系统而言,可在应用层通过数据库连接的配置,实现数据库连接池技术,几年钱也许还是个新鲜话题,对于目前的业务系统而言,如果设计中还没有考虑到连接池的应用,那么…….快在设计文档中加上这部分的内容吧。某一应用最大可用数据库连接数的限制,避免某一应用独占所有数据库资源。 

4. 统一的连接管理,避免数据库连接泄漏 

在较为完备的数据库连接池实现中,可根据预先的连接占用超时设定,强制收回被占用连接。从而避免了常规数据库连接操作中可能出现的资源泄漏。一个最小化的数据库连接池实现:

数据库连接池理解

1 数据库连接池中的连接,本质是一种对象,创建连接池,可以减少对象初始化、创建的时间,这个和线程池有点类似。都是为了节省创建时间,资源复用。 2 和连接池一样,数据库连接池创建的一般也有最大,最小值...
  • a314773862
  • a314773862
  • 2016年12月25日 13:16
  • 453

数据库连接池的理解和使用

一、什么是数据库连接池? 官方:数据库连接池(Connection pooling)是程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地对池中的连接进行申请,使用,释放。 ...
  • wenwen091100304
  • wenwen091100304
  • 2015年08月27日 20:49
  • 35822

关于数据库连接池的简单理解

数据库连接池更多的是一个本地的概念。以前一直觉得,数据库连接池是数据库服务器上的一个概念,在数据库服务器上有一个池,里边存放着很多的线程的数据库连接。   最近在分析的时候,发现这是不正确的,或者...
  • sundacheng1989
  • sundacheng1989
  • 2016年10月12日 09:46
  • 915

数据库 连接池的深入理解

一、应用程序直接获取数据库连接的缺点   用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长。假设网站一天10万访问量,数据库服务器就需要创建10万次...
  • yanlove_jing
  • yanlove_jing
  • 2016年05月23日 16:42
  • 3627

理解数据库连接池

连接池的概念:连接池是一个进程,该进程保存连接并使其处于活动状态,使连接可以被重复使用。在实际的应用场景中,相同的连接字符串对应一个连接池。如果用这个连接字符串new出多个数据库连接,操作完相关的数据...
  • peng_bin1989
  • peng_bin1989
  • 2013年02月21日 22:14
  • 471

数据库连接池原理详解与自定义连接池实现

实现原理数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,这些数据库连接的数量是由最小数据库连接数制约。无论这些数据库连接是否被使用,连接池都将一直保证至少拥有这么多的连接数量。连接池的最...
  • fuyuwei2015
  • fuyuwei2015
  • 2017年05月17日 18:18
  • 1481

自己动手实现数据库连接池

数据库连接池 1. 数据库连接池是干什么的 假如我们有个应用程序需要每隔10秒查询一次数据库,我们可以用以下方式 方法1:每次查询的时候都新建一个数据库连接,查询结束关闭数据库连接。 ...
  • Deginch
  • Deginch
  • 2017年04月11日 17:02
  • 1031

数据库连接池的使用方法

数据库连接池的介绍 DBCP的使用方式 C3P0的使用方式
  • shuaicihai
  • shuaicihai
  • 2016年12月21日 00:53
  • 1930

Java数据库连接池实现原理

一般来说,Java应用程序访问数据库的过程是:   ①装载数据库驱动程序;   ②通过jdbc建立数据库连接;   ③访问数据库,执行sql语句;   ④断开数据库连接。 public class ...
  • tuke_tuke
  • tuke_tuke
  • 2016年05月29日 16:33
  • 13434

代码实现数据库连接池

数据库连接池(Connection pooling)是程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地对池中的连接进行申请,使用,释放。 大家可以想一下,如果项目中没有数据库...
  • mlc1218559742
  • mlc1218559742
  • 2017年02月09日 21:47
  • 1553
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何理解--数据库连接池
举报原因:
原因补充:

(最多只允许输入30个字)