数据库连接池

abstract

之前有写过文章介绍了java连接数据库的流程,该流程是一个线程请求访问数据库时必要的步骤,但是网站并发量高时,每个线程都要连接数据库,操作数据库,断开数据库连接。有时操作数据库的时间占比非常小,时间花销都用在数据库的连接与断开上。导致了并发访问瓶颈。

这个时候数据库与应用线程就是一个生产者消费者的关系,解决生产消费者关系的方案之一就是引入资源池.

生产者生产的东西一直朝池子中放,消费者从池子中获取自己想要的资源。数据库与线程也是,线程需要连接,那就把连接都初始化好,放在池子里,线程直接获取连接,操作数据库,用完之后归还连接。这样每个线程就不需要和自己和数据库建立断开连接,连接已经由连接池创建好,只需要拿过来用即可。