前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >对比各大数据库连接池技术-Jdbc-Dbcp-C3p0-Druid-Hikaricp

对比各大数据库连接池技术-Jdbc-Dbcp-C3p0-Druid-Hikaricp

作者头像
杨校
发布2019-06-16 13:08:33
7.9K0
发布2019-06-16 13:08:33
举报
文章被收录于专栏:Java技术分享圈Java技术分享圈

目录

1. 连接池是什么?

2. 为什么要用连接池?

3. 有哪些数据库连接池?

4. 各数据库连接池测试结论?

5.各数据库连接池功能对比?


1. 连接池是什么?

连接池是一种用于提高具有动态数据库驱动内容的应用程序性能的技术。打开和关闭数据库连接可能看起来不是昂贵的费用,但它可以相当快地加起来。假设建立连接需要5ms,执行查询需要5ms(完全编号),50%的时间是建立连接。将此扩展到数千或数万个请求,并且浪费了大量网络时间。连接池本质上是开放数据库连接的缓存。打开并使用数据库连接而不是关闭它后,将其添加回池中。当你去获取一个新连接时,如果池中有一个可用,它将使用该连接而不是建立另一个连接?

2. 为什么要用连接池?

  • 频繁地打开和关闭连接可能很昂贵。缓存和重用。数据库压力问题。
  • 当活动激增时,您可以限制与数据库的连接数。这将强制代码阻塞,直到连接可用。这在分布式环境中尤其有用。
  • 将常见操作拆分为多个池。例如,您可以拥有一个指定用于OLAP连接的池和一个用于OLTP连接的池,每个连接具有不同的配置

3. 有哪些数据库连接池?

proxool?更新时间截止2008年。速度可以,稳定性稍差,发较高的情况下会出错。

c3p0?太古老,代码及其复杂,不利于维护。貌似都比它强。

dbcp?是 apache上的一个 java 连接池项目,也是 tomcat 使用的连接池组件。

druid?是alibba出品的一个功能比较全面,且扩展性较好的数据库连接池,比较方便对jdbc接口进行监控跟踪等。

BoneCP?13年前最快的连接池项目。2013年后不再更新,心灰意冷。

HikariCP?光连接池,目前被SpringBoot2官方推荐使用的数据库连接池。

4. 各数据库连接池测试结论

? ?1:性能方面?HikariCP>Druid>tomcat-jdbc>dbcp>c3p0 。hikariCP的高性能得益于最大限度的避免锁竞争。

? ?2:druid功能最为全面,sql拦截等功能,统计数据较为全面,具有良好的扩展性。

? ?3:综合性能,扩展性等方面,可考虑使用druid或者hikariCP连接池。

? ?4:可开启prepareStatement缓存,对性能会有大概20%的提升。

5.各数据库连接池功能对比

功能

dbcp

druid

c3p0

tomcat-jdbc

HikariCP

是否支持PSCache

监控

jmx

jmx/log/http

jmx,log

jmx

jmx

扩展性

sql拦截及解析

支持

代码

简单

中等

复杂

简单

简单

更新时间

2019.02

2019.05

2019.03

2019.02

最新版本

2.60

1.1.17

0.9.5.4

3.3.1

特点

依赖于common-pool

阿里开源,功能全面

历史久远,代码逻辑复杂,且不易维护

优化力度大,功能简单,起源于boneCP

连接池管理

LinkedBlockingDeque

数组

FairBlockingQueue

threadlocal+CopyOnWriteArrayList

?总结:

  • 由于boneCP被hikariCP替代,并且已经不再更新,boneCP没有进行调研。
  • proxool网上有评测说在并发较高的情况下会出错,proxool便没有进行调研。
  • ?druid的功能比较全面,且扩展性较好,比较方便对jdbc接口进行监控跟踪等。
  • c3p0历史悠久,代码及其复杂,不利于维护。并且存在deadlock的潜在风险。
本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年06月15日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 连接池是什么?
  • 2. 为什么要用连接池?
  • 3. 有哪些数据库连接池?
  • 4. 各数据库连接池测试结论
  • 5.各数据库连接池功能对比
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com