摘要:目前主流的数据库连接池有等几种。默认值初始化连接池中的连接数,取值应在与之间,默认为最大空闲时间秒内未使用则连接被丢弃。当连接池中的连接耗尽的时候一次同时获取的连接数。每秒检查所有连接池中的空闲连接。
一、数据库连接池
数据库连接池的基本思想就是为数据库连接建立一个缓冲池,预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需要从“缓冲池”中取出一个,使用完之后在放回去,节省连接建立、释放过程中的资源、时间消耗。
目前主流的数据库连接池有DBCP、C3P0、DRUID等几种。
DBCP来自apache家族,是基于common-pool对象池机制的数据库连接池,目前有三个不同的版本支持不同的JDBC规范:
DBCP v1.3版本(JDBC3)
DBCP v1.4版本(JDBC4)
DBCP v2.X版本(JDBC4.1)
DBCP2 代表的也就是2.X版本,相比较于1.x版本,性能有了较大提升,支持JMX和一些新特性;DBCP2.X和DBCP1.x是不兼容的,包括具体配置上面的参数也有些不同;项目引用的类名称、maven仓库的位置坐标也不一样。
2、C3P0C3P0 支持JDBC3规范和JDBC2的标准扩展; 在hibernate项目中使用的比较多;
3、DRUIDDruid 是阿里巴巴开源平台上一个数据库连接池实现,除了数据库连接池外,还提供了一系列内置的jdbc组件,可以监控DB连接池和sql执行情况。
二、主要区别1、c3p0提供最大空闲时间,当连接超过最大空闲连接时间,当前连接就会被断掉。
2、DBCP提供最大连接数,当连接数超过最大连接数时候,所有连接都会被断开。
3、Druid结合了C3P0、DBCP的优点,同时针对不同的数据库,在实现上有针对性的优化。
1、Druid除了连接池,监控功能也不错,便于优化,一般情况下推荐使用;
2、如果使用的是oracle数据库,不建议使用c3p0,因为c3p0不遵循LRU;
spring中datasource的配置分别如下:
1、DBCP配置2、DBCP2配置
3、C3P0配置
4、DRUID配置
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/69594.html
摘要:你仅仅需要一个大小为数据库连接池,然后让剩下的业务线程都在队列里等待就可以了。你应该经常会看到一些用户量不是很大的应用中,为应付大约十来个的并发,却将数据库连接池设置成,的情况。请不要过度配置您的数据库连接池的大小。 文章翻译整理自: https://github.com/brettwooldridge/HikariCP/wiki/About-Pool-Sizing欢迎关注个人微信公众...
摘要:你仅仅需要一个大小为数据库连接池,然后让剩下的业务线程都在队列里等待就可以了。你应该经常会看到一些用户量不是很大的应用中,为应付大约十来个的并发,却将数据库连接池设置成,的情况。请不要过度配置您的数据库连接池的大小。 文章翻译整理自: https://github.com/brettwooldridge/HikariCP/wiki/About-Pool-Sizing欢迎关注个人微信公众...
摘要:前言由于写的文章已经是有点多了,为了自己和大家的检索方便,于是我就做了这么一个博客导航。 前言 由于写的文章已经是有点多了,为了自己和大家的检索方便,于是我就做了这么一个博客导航。 由于更新比较频繁,因此隔一段时间才会更新目录导航哦~想要获取最新原创的技术文章欢迎关注我的公众号:Java3y Java3y文章目录导航 Java基础 泛型就这么简单 注解就这么简单 Druid数据库连接池...
阅读 3204·2021-11-17 09:33
阅读 3287·2021-11-15 11:37
阅读 2949·2021-10-19 11:47
阅读 3198·2019-08-29 15:32
阅读 1001·2019-08-29 15:27
阅读 1524·2019-08-29 13:15
阅读 931·2019-08-29 12:47
阅读 2021·2019-08-29 11:30