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

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

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的潜在风险。

 


分享是快乐的,也见证了个人成长历程,文章大多都是工作经验总结以及平时学习积累,基于自身认知不足之处在所难免,也请大家指正,共同进步。

目录
相关文章
|
1月前
|
数据采集 人工智能 分布式计算
ODPS在AI时代的发展战略与技术演进分析报告
ODPS(现MaxCompute)历经十五年发展,从分布式计算平台演进为AI时代的数据基础设施,以超大规模处理、多模态融合与Data+AI协同为核心竞争力,支撑大模型训练与实时分析等前沿场景,助力企业实现数据驱动与智能化转型。
236 4
|
2月前
|
存储 分布式计算 Hadoop
Hadoop框架解析:大数据处理的核心技术
组件是对数据和方法的封装,从用户角度看是实现特定功能的独立黑盒子,能够有效完成任务。组件,也常被称作封装体,是对数据和方法的简洁封装形式。从用户的角度来看,它就像是一个实现了特定功能的黑盒子,具备输入和输出接口,能够独立完成某些任务。
|
1月前
|
SQL 分布式计算 大数据
我与ODPS的十年技术共生之路
ODPS十年相伴,从初识的分布式计算到共生进化,突破架构边界,推动数据价值深挖。其湖仓一体、隐私计算与Serverless能力,助力企业降本增效,赋能政务与商业场景,成为数字化转型的“数字神经系统”。
|
2月前
|
数据采集 自然语言处理 分布式计算
大数据岗位技能需求挖掘:Python爬虫与NLP技术结合
大数据岗位技能需求挖掘:Python爬虫与NLP技术结合
|
2月前
|
存储 分布式计算 算法
Java 大视界 -- Java 大数据在智能教育在线考试监考与作弊检测中的技术创新(193)
本文探讨了Java大数据技术在智能教育在线考试监考与作弊检测中的创新应用。随着在线考试的普及,作弊问题日益突出,传统监考方式难以应对。通过Java大数据技术,可实现考生行为分析、图像识别等多维度监控,提升作弊检测的准确性与效率。结合Hadoop与Spark等技术,系统能实时处理海量数据,构建智能监考体系,保障考试公平性,推动教育评价体系的数字化转型。
|
2月前
|
SQL 缓存 监控
大数据之路:阿里巴巴大数据实践——实时技术与数据服务
实时技术通过流式架构实现数据的实时采集、处理与存储,支持高并发、低延迟的数据服务。架构涵盖数据分层、多流关联,结合Flink、Kafka等技术实现高效流计算。数据服务提供统一接口,支持SQL查询、数据推送与定时任务,保障数据实时性与可靠性。
|
4月前
|
人工智能 分布式计算 大数据
MCP、MaxFrame与大数据技术全景解析
本文介绍了 MCP 协议、MaxFrame 分布式计算框架以及大数据基础设施建设的相关内容。MCP(Model Context Protocol)是一种开源协议,旨在解决 AI 大模型与外部数据源及工具的集成问题,被比喻为大模型的“USB 接口”,通过统一交互方式降低开发复杂度。其核心架构包括 Client、Server、Tool 和 Schema 四个关键概念,并在百炼平台中得到实践应用。MaxFrame 是基于 Python 的高性能分布式计算引擎,支持多模态数据处理与 AI 集成,结合 MaxCompute 提供端到端的数据处理能力。
|
传感器 分布式计算 安全
Java 大视界 -- Java 大数据在智能安防入侵检测系统中的多源数据融合与分析技术(171)
本文围绕 Java 大数据在智能安防入侵检测系统中的应用展开,剖析系统现状与挑战,阐释多源数据融合及分析技术,结合案例与代码给出实操方案,提升入侵检测效能。
Java 大视界 -- Java 大数据在智慧文旅虚拟场景构建与沉浸式体验增强中的技术支撑(168)
本文围绕 Java 大数据在智慧文旅领域的应用展开,系统阐述了数据采集、3D 建模、游客行为分析等核心技术的原理与实现,结合实际案例,全方位展示了 Java 大数据在推动智慧文旅发展中的显著价值。
|
5月前
|
存储 搜索推荐 算法
大数据在电子健康记录中的潜力与挑战:一次技术和伦理的深度碰撞
大数据在电子健康记录中的潜力与挑战:一次技术和伦理的深度碰撞
139 12