数据库连接池的原理( 三 )


5、连接池的配置与维护
连接池中到底应该放置多少连接 , 才能使系统的性能最佳?系统可采取设置最小连接数(minconn)和最大连接数(maxconn)来控制连接池中的连接 。最小连接数是系统启动时连接池所创建的连接数 。如果创建过多 , 则系统启动就慢 , 但创建后系统的响应速度会很快;如果创建过少 , 则系统启动的很快 , 响应起来却慢 。这样 , 可以在开发时 , 设置较小的最小连接数 , 开发起来会快 , 而在系统实际使用时设置较大的 , 因为这样对访问客户来说速度会快些 。最大连接数是连接池中允许连接的最大数目 , 具体设置多少 , 要看系统的访问量 , 可通过反复测试 , 找到最佳点 。
如何确保连接池中的最小连接数呢?有动态和静态两种策略 。动态即每隔一定时间就对连接池进行检测 , 如果发现连接数量小于最小连接数 , 则补充相应数量的新连接以保证连接池的正常运转 。静态是发现空闲连接不够时再去检查 。
 
四、实际开发中有成熟的开源连接池供我们使用理解了连接池的原理就可以了 , 没有必要什么都从头写一遍 , 那样会花费很多时间 , 并且性能及稳定性也不一定满足要求 。事实上 , 已经存在很多流行的性能优良的第三方数据库连接池jar包供我们使用 。如:

  • Apache commons-dbcp
  • c3p0
  • Druid
  • HikariCP
其中c3p0已经很久没有更新了 。DBCP更新速度很慢 , 基本处于不活跃状态 , 而Druid和HikariCP处于活跃状态的更新中 。




推荐阅读