常用数据库连接池
2016-08-09 14:14
218 查看
现在常用的开源数据库连接池主要有c3p0、dbcp、proxool三种,其中: Spring 推荐使用dbcp; Hibernate 推荐使用c3p0和proxool; 1、 DBCP:apache DBCP(DataBase connection pool)数据库连接池。是apache上的一个 java连接池项目,也是 tomcat使用的连接池组件。单独使用dbcp需要3个包:common-dbcp.jar,common-pool.jar,common-collections.jar由于建立数据库连接是一个非常耗时耗资源的行为,所以通过连接池预先同数据库建立一些连接,放在内存中,应用程序需要建立数据库连接时直接到连接池中申请一个就行,用完后再放回去。dbcp没有自动的去回收空闲连接的功能。 2、 C3P0: C3P0是一个开源的jdbc连接池,它实现了数据源和jndi绑定,支持jdbc3规范和jdbc2的标准扩展。c3p0是异步操作的,缓慢的jdbc操作通过帮助进程完成。扩展这些操作可以有效的提升性能。目前使用它的开源项目有Hibernate,Spring等。c3p0有自动回收空闲连接功能。 3、 Proxool:Sourceforge Proxool是一种Java数据库连接池技术。是sourceforge下的一个开源项目,这个项目提供一个健壮、易用的连接池,最为关键的是这个连接池提供监控的功能,方便易用,便于发现连接泄漏的情况。 对比: 1> 相同时间内同等量的线程数和循环次数下:通过对三个连接池的三个标志性性能测试参数(Average,median,90%Line)进行比较发现:性能dbcp<=c3p0<proxool; 2> 不同情况下的同一数据库连接池测试:通过观察 Average,median,90%Line三个参数发 现三个连接池的稳定性(三种连接池的三个测试参数的变化情况)依次:稳定性dbcp>=c3p0>proxool。 结论: 通过对三种数据库连接池的性能测试发现,proxool和 c3p0能够更好的支持高并发,但是在稳定性方面略逊于 dpcp;
相关文章推荐
- Sql Server数据库中char、nchar、varchar、nvarchar区别
- django直接操作MySQL,中文乱码
- Node.js中MySQL的操作
- MongoDB使用小结:一些不常见的经验分享
- mysql数据迁移采用MySQLdump工具迁移
- maxperm小记
- Linux-Memcache分布式部署方案(magent代理解决单点故障)
- 关于mysql函数GROUP_CONCAT
- 命令窗口导出oracle数据库的方法及常见问题解决方法
- Oracle 客户端连接远程数据库配置注意事项
- Mysql外键
- web框架学习前复习——mysql命令
- YbSoftwareFactory 代码生成插件【十九】:实体类配合数据库表字段进行属性扩展的小技巧
- 各种数据库jdbc字符串
- 数据库持久化框架
- Mysql分页查询limit逗号和offset 区别
- sql 插入一条记录并查询出记录的id值
- Oracle 中重新编译无效的存储过程, 或函数、触发器等对象
- sqlite
- 一个进销存数据库设计的例子