连接池

Posted helloqiufei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了连接池相关的知识,希望对你有一定的参考价值。

个人理解: 在小型的项目的过程中连接数据库,增删改查, 关闭数据库连接,这样的操作次数不多的时候,你好看不出来影响,但是当你数据库连接关闭,不停的在创建,那么这将是一个极大的资源消耗,这会使得系统承受不住,造成资源浪费。如果使用连接池之后,就可以创建几个连接,进程里面谁需要使用就去调用连接, 关闭连接的时候,就将连接释放,这样就不要向原始一样,多次创建jdbc连接数据库,减少了资源的浪费(粗粗的写的)

 

这种连接“汇集”起来的技术基于这样的一个事实:对于大多数应用程序,当它们正在处理通常需要数毫秒完成的事务时,仅需要能够访问JDBC连接的 1 个线程。当不处理事务时,这个连接就会闲置。相反,连接池允许闲置的连接被其它需要的线程使用
事实上,当一个线程需要用 JDBC 对一个 GBase 或其它数据库操作时,它从池中请求一个连接。当这个线程使用完了这个连接,将它返回到连接池中,这样这就可以被其它想使用它的线程使用。
当连接从池中“借出”,它被请求它的线程专有地使用。从编程的角度来看,这和用户的线程每当需要一个 JDBC 连接的时候调用DriverManager.getConnection() 是一样的,采用连接池技术,可通过使用新的或已有的连接结束线程。连接池可以极大的改善用户的 Java 应用程序的性能,同时减少全部资源的使用。连接池主要的优点有:
减少连接创建时间
 虽然与其它数据库相比 GBase 提供了较为快速连接功能,但是创建新的 JDBC 连接仍会招致网络和 JDBC 驱动的开销。如果这类连接是“循环”使用的,使用该方式这些花销就可避免。
简化的编程模式
   当使用连接池时,每一个单独的线程能够像创建了一个自己的 JDBC 连接一样操作,允许用户直接使用JDBC编程技术
受控的资源使用
   如果用户不使用连接池,而是每当线程需要时创建一个新的连接,那么用户的应用程序的资源使用会产生非常大的浪费并且可能会导致高负载下的异常发生
注意,每个连到 GBase 的连接在客户端和服务器端都有花销(内存,CPU,上下文切换等等)。每个连接均会对应用程序和 GBase 服务器的可用资源带来一定的限制。不管这些连接是否在做有用的工作,仍将使用这些资源中的相当一部分。
连接池能够使性能最大化,同时还能将资源利用控制在一定的水平之下,如果超过该水平,应用程序将崩溃而不仅仅是变慢。

 

以上是关于连接池的主要内容,如果未能解决你的问题,请参考以下文章

连接池

数据库连接池的Java连接池

spring可以不用连接池吗

数据库连接池是啥

WebLogic中查看连接池的使用情况

08-连接池