当有多个用户连接数据库时,同一时间内很有可能会有不止一个用户访问应用程序。当用户数量很多时,由于系统的资源有限,系统的资源有限,系统的性能方面往往会出现问题。此时一般采用数据库连接池技术来解决问题。
多用户数据库库连接方法
当有多个用户连接系统时,在同一时间内很有可能会有不止一个用户需要数据库连接,可以有以下几种数据库连接的解决方法。
1.为每一个用户来凝结请求建立一个新的数据库连接
此方法最为简单,在任何时候都可以处理数据库的多用户并发请求。但却点也是非常明显的。系统可以处理的并发请求的数量手大型数据库系统设置和JSP Web应用服务器配置的限制。其次,系统能处理的并发请求的数量受系统资源的限制,如系统内存资源不足以支持这些链接的话会导致数据库系统瘫痪;CPU资源不足的话会导致系统相应的速度很慢。
2.在应用系统初始化时建立一个连接,所有对数据库的通信都通过此链接进行
此法可以免除每次请求时初始化和释放数据库连接的开销,而且不会有系统并发处理的问题。但由于只使用一个物理数据库连接,所有通过这个连接的请求只能串行执行,系统在处理完前一个用户请求之前无法处理下一个用户的请求,这样必然影响数据库的效率。当有多个并发的请求道大服务器时,不能被处理的请求只能由较底层次的套接字和网络协议封锁,通常采用缓存机制。因此当系统的缓冲不足时也有系统崩溃的危险。
3.为数据库连接创建一个连接池,在连接池中管理者限定数目的数据库连接。数据库连接池实在应用程序启动时就建立足够的数据库链接,并将这些链接组成一个连接缓冲区,由应用程序动态的对缓冲区中的连接进行申请,使用和释放。对于超过连接池并发连接数限制的请求,将其放在请求队列中排队等待数据库服务。
可以使用专门的程序来创建和维护数据库连接池,当需要一个数据库连接时,通过此连接池管理程序来获得连接;当结束一个数据库连接时,此链接交换给连接池管理程序。在小规模系统中,连接池的功能无法体现出来,但随负载的增加系统的性能将比不使用连接池的系统有明显改善。