一直以为对数据库连接池感到非常神秘。
今天终于花时间研究了一下。
首先说下数据库连接池的工作原理:
以前程序连接数据库都是建立一条物理连接,用完之后就会关闭。而在有大量连接的时候,这种建立连接和关闭连接会很影响性能。所以像webLogic这种服务器会建立一个资源池(Resource Pool或者Connection Pool),每次有连接过来时,就将资源池中的一个连接分配给它,用完之后再放入资源池中。假如资源池中的最大连接数是100,那么当有150个人同时访问这个连接池时,只有100个连接是被拿出来的,另外50个保持等待状态。等100个里面哪个用完,就给50个中的一个使用。
------------------------------------------------------
对于连接池的通俗理解:
数据库就像一个大型停车场。
以前是只有一个门可以进入这个停车场。假设一个汽车经过大门的时间是1秒。现在如果汽车增加到100辆,那么100辆车想要通过这个大门,需要100S。如果现在将停车场开了100个大门,这100个大门就相当于资源池(缓冲池)。那么100辆车通过只需要1S。性能提高100倍。
参照资料:
1、http://www.huihoo.org/j2ee/jdbc3.html