连接复用的利器-数据库连接池

简单介绍一下数据库连接池,或者说使用连接池的背景是什么?数据库连接是一种关键的、有限的、昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。

而连接池能干什么呢?连接池能够像一个蓄水池一样容纳一些固定数量的数据库连接,当用户的请求需要访问数据库的时候,不是直接建立新的连接,而是通过连接池获得已经创建好的连接,这样可以大大提高系统的服务性能,因为一旦并发过多的时候,如果没有连接池,每一个并发就会建立一个连接,而连接需要耗费内存资源,最终产生内存溢出,导致服务奔溃,虽然用了连接池并不能消除内存溢出的情况,但是能大大减轻这种情况的发生,这时候就需要提高硬件的质量了。

银行办理业务这个生活现象也与连接池的思想不谋而合,办理完了一个用户的业务,如果没有连接池,可能业务员会关掉电脑(关闭连接),再来一个用户,在开启电脑(建立连接),实际情况是业务员不会轻易关掉电脑,而是根据用户多少来增减窗口数量,连接池也是这样,一旦某个连接超过设定的最大空闲时间,就会被系统回收,从连接池里面取出,节省资源。

今天做了一个实验:本来想比较有无连接池插入200条记录的运行时间的,但是200条记录对于没有连接池的程序来说,就是200个并发,结果显示拒绝建立连接,或许这就是导致系统奔溃、停止服务的原因之一了。

贴上实验的截图,

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Data source rejected establishment of connection, message from server: “Too many connections”

使用了数据库,200条记录还是很快的,分享实验的源码:

https://github.com/zhoutaiyu/JavaEE/tree/master/JDBCTest2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值