数据库连接池简介

出现背景

  • 需要数据库连接得到高效、安全的复用,避免数据库连接频繁建立、关闭的开销。
  • 对共享资源有一个设计模式(资源池)来解决资源频繁分配、释放造成的问题。把该模式应用到数据库连接管理领域,就是建立数据库连接池。
  • 基本原理是在内部对象池维护一定数量的数据库连接,并对外暴露数据库连接获取和返回方法。

第一代连接池

  • 一般采用单线程同步的架构设计的都属于第一代连接池,而采用多线程异步架构的则属于第二代。比较有代表性的就是Apache Commons DBCP。

第二代连接池

  • 在数据库连接池产品群,二代对一代的超越是颠覆性,很难找到第二条理由说服自己不选择二代,最具代表性的两款产品是HikariCP和druid。

HikariCP的优化策略
*字节码精简:优化代码直到编译后字节码最少,让CPU缓存可加载更多程序代码;

  • 优化代理和拦截器:减少代码,例如HikariCP的Statement proxy只有100行代码,只有BoneCP的十分之一;
  • 自定义数组类型(FastStatementList)代替ArrayList:避免每次get()调用都要range check,避免调用remove()时的从头到尾的扫描;
  • 自定义集合类型(ConcurrentBag):提高并发读写效率;

druid

  • druid是阿里一个开源项目,除提供卓越的连接池功能外,还集成sql监控、黑名单拦截等功能,用它自己的话说,druid是“为监控而生”。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值