dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2165
  • 铜币13236枚
  • 威望5838点
  • 银元150个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 原创写手
阅读:303回复:0

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

楼主#
更多 发布于:2018-05-22 17:01
数据库连接池的功能
解决 WEB 系统高并发环境下,频繁的进行数据库连接操作,造成系统技术瓶颈问题(无效的资源开销),通过为数据库连接为建立一个“缓冲池”。预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。

Java 应用程序访问数据库的过程
    1. 装载数据库驱动程序;
    2. 通过 jdbc建立数据库连接;
    3. 访问数据库,执行sql语句;
    4. 断开数据库连接。

首先,每次 web请求都建立一次数据库连接。建立连接是一个费时的活动,每次大约花费1s左右的时间,而且系统还要分配内存资源。这个时间对于几次数据库操作,或许感觉不出系统有多大的开销。
但是对于大型电商类网站,同时有成千上万人同时在线的情况下,频繁的进行数据库连接操作势必占用很多的系统资源,网站的响应速度必定下降,严重的甚至会造成服务器的崩溃

其次,对于每一次数据库连接使用完后都得断开。否则,程序出现异常而未能关闭,将会导致数据库系统中的内存泄漏,最终数据库将拒绝服务。

扩展: java 数据库连接池 Druid
Druid 是一个JDBC组件库,包括数据库连接池、SQL Parser等组件。DruidDataSource 是优秀的数据库连接池

1. Maven 中使用 Druid
<dependency>
     <groupid>com.alibaba</groupid>
     <artifactid>druid</artifactid>
     <version>1.1.9</version>
</dependency>

2. 配置数据源相关信息,参考这里


内容参考自: Java数据库连接池实现原理
#
游客

返回顶部