数据库连接池
1.使用数据库连接池技术的驱动
如果不使用连接池,当对数据库进行频繁的访问时,就要频繁的创建和断开连接,而建立数据库连接时非常消耗资源的,整个系统的效率就被大大的降低了。数据库连接池解决了这一问题:在一开始,就创建一定数量的连接,把他们放到连接池中,当需要使用连接时,就从池中取,当使用完之后,就放入池中,供其他需要使用连接的程序使用。
2.数据库连接池的主要作用
数据库连接池的主要作用是负责分配、管理和释放数据库连接。它允许应用程序使用一个 现有的数据库连接,而不是重新再建立一个,释放空闲时间大于最大空闲时间的数据库连接来避免因为没有释放数据库连接而造成的数据库连接泄露。
3.连接池的分配与释放
连接池的分配与释放技术对系统的性能有很大的影响。合理的分配与释放,可以提高连接的复用度,从而降低建立新连接的开销,同时还可以加快用户的访问速度。对于连接的管理。每当用户请求一个连接时,系统首先检查连接池内有没有空闲连接。如果有就把建立时间最长(通过容器的顺序存放实现)的那个连接分配给他(实际是先做连接是否有效的判断,如果可用就分配给用户,若不可用就把这个连接删掉,重新检测是否还有连接);如果检查到当前所开连接池没有达到连接池所允许的最大连接数(maxConn),就新建一个连接,如果已经达到,就等待一定的时间(timeout)。如果在等待的时间内有连接被释放出来就可以把这个连接分配给等待的用户,如果等待时间超过预定时间timeout,则返回空值(null)。系统对已经分配出去正在使用的连接只做计数。
4.连接池的维护
数据库连接池到底要放置多少个连接,这是个配置策略。为了使系统的性能达到最佳状态,连接池中的连接数的设定显得尤为重要,我们采用设置最大连接数(maxConn)与最小连接数(minConn)的方式来解决这一问题。所谓最大连接数,即连接池中允许连接的最大数目,然后,最大连接数的设定要通过具体的应用需求来给出一个连接池可以承受的最大连接数目的最佳点。如果应用程序向连接池请求的连接数超过最大连接数量时,这些请求将被加入到等待队列中,等待其他连接的释放后再来调用一空闲连接(freeConn),这样可能会影响部分对数据库的操作。所谓最小连接数,即应用启动前,已经预先创建好的连接数。无论这些数据库连接是否被使用,连接池都将一直保证至少拥有这么多的连接数量。如果最小连接数过大,那么系统启动过程将变慢,若应用程序对数据库的访问量不大,过多的数据库连接资源将被浪费,但是系统启动后响应更快;如果过小系统启动将加快,但是系统启动后响应相对慢。
<!--EndFragment-->