数据库连接池的原理及作用

上一篇 / 下一篇  2013-03-22 13:23:24 / 个人分类:数据库

【摘 要】对于一个简单的数据库应用,由于对于数据库的访问不是很频繁。这时可以简单地在需要访问数据库时,就新创建一个连接,用完后就关闭它,这样做也不会带来什么明显的性能上的开销。但是对于一个复杂的数据库应用,情况就完全不同了。频繁的建立、关闭连接,会极大的减低系统的性能,因为对于连接的使用成了系统性能的瓶颈。 这就需要数据库连接池。数据库连接池的基本原理是在内部对象池中维护一定数量的数据库连接,并对外暴露数据库连接获取和返回方法。在了解了其工作原理之后我们就会知道,在当今这个网络时代,数据库连接池的意义是很重大的,同样也具有一定得优势。

【关键词】数据库连接池,原理,Web应用程序,安全复用,作用,优势

一、引言

Web技术应用与开发这门课的第二章中我们学习了和Web应用程序相关的数据库连接技术。当前可用的数据库平台都已经比较成熟,都支持相关的技术标准。因此采用业界普通认可的数据库连接和操作规范,就可以使Web应用程序运行在这些数据库的支持下。但是,使用传统的数据库连接模式开发Web系统,建立和关闭数据库连接的过程将会严重增加系统开销,成为造成Web系统速度缓慢的重要原因。所以,使用连接池技术,数据库连接得到了高效、安全的复用,避免了其频繁建立、关闭的开销。随着企业信息化进程的深化,数据库应用已成为企业信息处理的主要组成部分,现在的任何一个稍具规模的网站,其后台必然涉及到对大型数据库的访问,换句话说,基于对数据库的应用己经成为当前Web系统的主要特征。这也构成了连接池技术应用的必然性。

二、数据库连接池的原理

一般情况下,在使用开发基于数据库的WEB应用程序时,传统的模式基本是按以下步骤来进行的:1、在主程序(如ServileBeans)中建立数据库连接。2、进行SQL操作,取出数据。3、断开数据库连接。使用这种模式开发,存在很多问题。首先,我们要为每一次WEB请求建立一次数据库连接,例如察看某一篇文章的内容时。对于一次或几次操作来讲,或许你觉察不到系统的开销,但是,对于WEB程序来讲,即使在某一较短的时间段内,其操作请求数也远远不是一两次,而是数十上百次。如果全世界的网友都有可能在您的网页上查找资料的话,系统开销是相当大的。事实上,在一个基于数据库的WEB系统中,建立数据库连接的操作将是系统中代价最大的操作之一。很多时候,可能您的网站速度瓶颈就在于此。其次,使用传统的模式,你必须去管理每一个连接,确保他们能被正确关闭,如果出现程序异常而导致某些连接未能关闭,将导致数据库系统中的内存泄露,最终我们将不得不重启数据库。这样的情况便可以导出,我们可以使用连接池技术来解决上述问题。数据库连接池的基本思想就是为数据库连接建立一个缓冲池。预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从缓冲池中取出一个,使用完毕之后再放回去。我们可以通过设定连接池最大连接数来防止系统无尽的与数据库连接。更为重要的是我们可以通过连接池的管理机制监视数据库的连接的数量﹑使用情况,为系统开发﹑测试及性能调整提供依据。

数据库连接池的基本原理是在内部对象池中维护一定数量的数据库连接,并对外暴露数据库连接获取和返回方法。如:外部使用者可通过get Connection 方法获取连接,使用完毕后再通过release Connection 方法将连接返回,注意此时连接并没有关闭,而是由连接池管理器回收,并为下一次使用做好准备。

如下图所示:当程序中需要建立数据库连接时,只须从内存中取一个来用而不用新建。同样,使用完毕后,只需放回内存即可。而连接的建立、断开都有连接池自身来管理。同时,我们还可以通过设置连接池的参数来控制连接池中的连接数、每个连接的最大使用次数等等。通过使用连接池,将大大提高程序效率,同时,我们可以通过其自身的管理机制来监视数据库连接的数量、使用情况等。

三、数据库连接池的作用及优势

数据库连接池技术是指:在系统初期或者是初次使用时,完成数据库的连接,而后不再释放此连接而是在处理后面的请求时,反复使用这些已经建立的连接。这种方式可以大大减少数据库的处理时间,又利于系统的整体性能;同时又可以将有限的数据库连接数量最大可能的提高利用效率。因此,数据库连接池技术广泛的应用在各种应服务器产品中。

连接池一般比直接连接更有优越性因为它提高了性能的同时还保存了宝贵的资源。打开数据库连接时CPU和网络的重要任务因此,在整个应用程序的使用过程当中重复的打开直接连接将导致性能的下降。而池连接只在服务器启动时打开一次, 从而消除了这种性能问题。另外,因为连接只用于很短的时间,所以,连接可以被有效共享,而且有关连接参数的特有信息,只对池驱动程序有效,如数据库用户名 称和密码,从而增强了系统的安全性和可管理性。连接池是将已经创建好的连接保存在池中,当有请求来时,直接使用已经创建好的连接对数据库进行访问。这样省 略了创建连接和销毁连接的过程。

所以,数据库连接池的优势大家有目共睹:1.资源重用:由于数据库连接得到重用,避免了频繁创建、释放连接引起的大量性能开销。在减少系统消耗的基础上,另一方面也增进了系统运行环境的平稳性(减少内存碎片以及数据库临时进程/线程的数量);2.更快的系统响应速度:数据库连接池在初始化过程中,往往已经创建了若干数据库连接置于池中备用。此时连接的初始化工作均已完成。对于业务请求处理而言,直接利用现有可用连接,避免了数据库连接初始化和释放过程的时间开销,从而缩减了系统整体响应时间;3.新的资源分配手段对于多应用共享同一数据库的系统而言,可在应用层通过数据库连接的配置,实现数据库连接池技术,几年前也许还是个新鲜话题,对于目前的业务系统而言,如果设计中还没有考虑到连接池的应用,那么将会为系统造成许多不必要的麻烦;4.统一的连接管理,避免数据库连接泄漏:在较为完备的数据库连接池实现中,可根据预先的连接占用超时设定,强制收回被占用连接。从而避免了常规数据库连接操作中可能出现的资源泄漏。

四、总结

近年来,随着Internet技术的飞速发展和在世界范围内的迅速普及,计算机应用程序已从传统的桌面应用转到Web应用。Web应用程序的开发与网络的发展有着密切的关系,掌握了数据连接池的工作原理为更好的将Web应用程序运行在数据库的支持下提供了较方便较省时的手段,同时也节约了损耗的资源和开销。同时也具有一定得安全性,避免连接操作中可能出现的资源泄漏。所以,我们应充分利用数据库连接池来实现Web应用程序的运行,为Web程序的开发提供更多便捷有利的途径。

http://wenku.baidu.com/view/35d9ff254b35eefdc8d3330d.html

TAG:

 

评分:0

我来说两句

日历

« 2024-05-16  
   1234
567891011
12131415161718
19202122232425
262728293031 

我的存档

数据统计

  • 访问量: 19808
  • 日志数: 29
  • 建立时间: 2013-03-21
  • 更新时间: 2013-03-22

RSS订阅

Open Toolbar