数据库连接池

  • 数据库连接池

   数据库连接池负责分配,管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个。

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

数据库连接池是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现的尤为突出。一个数据库连接对象均对应一个数据库连接,每次操作都打开一个物理连接,使用完逗得关闭连接,这样子造成系统的性能低下。数据库连接池的解决方案是在应用程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由应用程序动态的对池中的数据库连接对象进行申请,使用,释放。对于多于连接池中连接数的并发请求,应该在请求队列中排队等待。并且应用程序可以根据池中连接的使用率,动态的增加或减少池中的连接数。连接池技术尽可能多的重用了消耗内存的资源,大大节省了内存,提高了服务器的服务效率,能够支持更多的客户效率,同时,我们可以通过其自身的管理机制来监视数据库连接的数量,使用情况等。

  • 使用数据库连接池的优点 

使用数据库连接池第一次访问的时候,需要建立连接。但是之后的访问,均会重复之前创建的连接,直接执行sql语句。因此它有以下优点:

1.   减少了网络开销

2.系统的性能会有一个实质性的提升

3.没了麻烦的TIME_WAIT 

  • 数据库连接池的工作原理 

连接池的工作原理主要由三部分组成,分别为:

1.连接池的建立

2.连接池中连接的使用管理

3.连接池的关闭

          第一、连接池的建立。一般在系统初始化时,连接池会根据系统配置建立,并在池中创建了几个连接对象,以便使用时能从连接池中获取。连接池中的连接不能随意创建和关闭,这样避免了连接随意建立和关闭造成的系统开销。Java中提供了很多容器类可以方便的构建连接池,例如Vector、Stack等。

        第二、连接池的管理。连接池管理策略是连接池机制的核心,连接池内连接的分配和释放对系统的性能有很大的影响。其管理策略是:
        当客户请求数据库连接时,首先查看连接池中是否有空闲连接,如果存在空闲连接,则将连接分配给客户使用;如果没有空闲连接,则查看当前所开的连接数是否已经达到最大连接数,如果没达到就重新创建一个连接给请求的客户;如果达到就按设定的最大等待时间进行等待,如果超出最大等待时间,则抛出异常给客户。
        当客户释放数据库连接时,先判断该连接的引用次数是否超过了规定值,如果超过就从连接池中删除该连接,否则保留为其他客户服务。
        该策略保证了数据库连接的有效复用,避免频繁的建立、释放连接所带来的系统资源开销。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值