一,数据库连接池的原因
一个数据库连接对象均有一个物理数据库连接,每次操作都需要物理连接,性能低下。
二,数据库连接池的原理
数据库连接池主要是创建足够的数据库连接,组成一个数据库连接池,有程序动态的对数据库连接池中的链接申请,使用,释放。这一个过程可能会出现队列操作,当数据库连接数大于线程池连接数时。
数据库连接池极大的减少了内存资源的消耗,提高了服务效率。
三,几种常见的数据库连接池
C3P0:开源的JDBC连接池,实现了数据源和JNDI绑定,支持JDBC规范。目前使用的框架有Hibernate,Spring等。单线程,性能较差,使用小型系统。
DBCP:由Apache开发的一个Java数据库连接项目。预先将数据库连接放到内存,应用程序需要建立数据库连接时直接到数据库连接池中申请就可以,用完再放回。单线程,并发量低,性能低,适用于小型系统。
Druid: Druid是Java语言中最好的数据库连接池,Durid能够提供强大的监视和扩容功能,是一个可用于大数据实时查询和分析的高容错,高性能的开源分布式系统,尤其是发生代码部署,机器故障以及其它产品系统遇到宕机等情况,Druid仍能够保持正常运行。主要功能为分析监控设计;快速的交互式查询;高可用;高扩展;多线程,异步。