数据库连接池选型 Druid vs HikariCP

简介: springboot 现在官方默认的数据库连接池是 HikariCP,HikariCP的性能从测试的数据上来看也是最高的。

这里主要比较HikariCP 和阿里的Druid


这里有来自Druid的竞品对比:https://github.com/alibaba/druid/wiki/Druid%E8%BF%9E%E6%8E%A5%E6%B1%A0%E4%BB%8B%E7%BB%8D

2.png

springboot 现在官方默认的数据库连接池是 HikariCP,HikariCP的性能从测试的数据上来看也是最高的。


3.png


所以我们主要对比Druid和HikariCP


先来看下这个著名的issue

  • 一个印度小哥提的 issue


4.png


  • brettwooldridge 这边主要针对性能和在中国以外的地方用的少的问题


5.png


6.png


  • 温绍这边说,由于使用公平锁所以降低了性能,至于为什么是因为在生产环境中遇到的一些问题,使设计使然。


7.png


  • 温绍同时也强调我们淘宝体量大,并发高,顺便甩了个带有马爸爸照片的链接,让他了解一下淘宝


8.png


9.jpg


  • brettwooldridge 这边回应 :比量是吧?(内心潜台词)
  • wix.com托管着超过1.09亿个网站,每天处理的请求超过10亿个
  • Atlassian的产品拥有数百万的客户
  • HikariCP是使用Play框架,Slick,JOOS构建的每个应用的默认连接池
  • 老子现在是spring boot的默认连接池
  • HikariCP每月从中央Maven存储库中解析超过300,000次。


10.png


  • 同时也甩了个链接,让你看看我HikariCP的名望


image.png


看完热闹,说回正题


  • 功能角度考虑,Druid 功能更全面,除具备连接池基本功能外,还支持sql级监控、扩展、SQL防注入等。最新版甚至有集群监控
  • 单从性能角度考虑,从数据上确实HikariCP要强,但Druid有更多、更久的生产实践,它可靠。
  • 单从监控角度考虑,如果我们有像skywalking、prometheus等组件是可以将监控能力交给这些的 HikariCP 也可以将metrics暴露出去。


总结


由于我们的系统架构上有专门用于监控的系统(skywalking、prometheus),外加使用了阿里云的RDS,RDS也有完整数据库监控指标。所以我们可以将监控的功能交给这些系统,让数据库连接池专心做好连接池的本职工作,所以我们选择性能更好的 HikariCP 做为数据库连接池。由于我们使用了Spring boot ,HikariCP 是内置的,也更方便配置使用,能做到开箱即用。

相关文章
|
9天前
|
XML Java 数据库连接
如何使用HikariCP连接池来优化数据库连接管理
在Java应用中,高效管理数据库连接是提升性能的关键。本文介绍了如何使用HikariCP连接池来优化数据库连接管理。通过引入依赖、配置参数和获取连接,你可以显著提高系统的响应速度和吞吐量。 示例代码展示了从配置到使用的完整流程,帮助你轻松上手。
36 3
|
14天前
|
存储 关系型数据库 MySQL
MySQL vs. PostgreSQL:选择适合你的开源数据库
在众多开源数据库中,MySQL和PostgreSQL无疑是最受欢迎的两个。它们都有着强大的功能、广泛的社区支持和丰富的生态系统。然而,它们在设计理念、性能特点、功能特性等方面存在着显著的差异。本文将从这三个方面对MySQL和PostgreSQL进行比较,以帮助您选择更适合您需求的开源数据库。
57 4
|
4月前
|
SQL druid Java
线程池相关故障问题之Druid数据库连接池中,为何需要设置TransactionTimeout
线程池相关故障问题之Druid数据库连接池中,为何需要设置TransactionTimeout
126 0
|
5月前
|
druid 数据库
杨校老师课堂之基于阿里巴巴的数据库连接池Druid的工具类开发
杨校老师课堂之基于阿里巴巴的数据库连接池Druid的工具类开发
37 0
|
1月前
|
监控 druid Java
HikariCP:数据库连接池性能新标杆
【10月更文挑战第2天】在Java应用开发中,数据库连接池作为提升数据库访问性能的关键组件,其重要性不言而喻。长期以来,Druid以其强大的监控、扩展性和稳定性,在业界赢得了广泛的认可与应用。然而,近年来,一个名为HikariCP的轻量级连接池逐渐崭露头角,以其惊人的速度和低资源消耗,挑战着Druid的霸主地位。今天,我们就来深入探讨,HikariCP为何能够如此迅速地“干掉”传统连接池,成为新的性能标杆。
42 0
|
3月前
|
SQL 数据库 Java
HQL vs SQL:谁将统治数据库查询的未来?揭秘Hibernate的神秘力量!
【8月更文挑战第31天】Hibernate查询语言(HQL)是一种面向对象的查询语言,它模仿了SQL的语法,但操作对象为持久化类及其属性,而非数据库表和列。HQL具有类型安全、易于维护等优点,支持面向对象的高级特性,内置大量函数,可灵活处理查询结果。下面通过示例对比HQL与SQL,展示HQL在实际应用中的优势。例如,HQL查询“从员工表中筛选年龄大于30岁的员工”只需简单地表示为 `FROM Employee e WHERE e.age > 30`,而在SQL中则需明确指定表名和列名。此外,HQL在处理关联查询时也更为直观易懂。然而,对于某些复杂的数据库操作,SQL仍有其独特优势。
57 0
|
3月前
|
关系型数据库 MySQL 数据库
探究数据库开源协议:PostgreSQL vs MySQL
探究数据库开源协议:PostgreSQL vs MySQL
|
3月前
|
druid Java 数据库连接
SpringBoot项目整合MybatisPlus持久层框架+Druid数据库连接池,以及实现增删改查功能
SpringBoot项目整合MybatisPlus和Druid数据库连接池,实现基本的增删改查功能。
314 0
|
5月前
|
数据库 微服务 NoSQL
探索微服务架构下的数据库选型与优化策略
在现代软件开发中,微服务架构已成为一种常见的设计范式。而数据库在微服务架构中的选型与优化策略对整个系统的性能和稳定性至关重要。本文将探讨在微服务环境下,如何选择适合的数据库类型以及优化数据库性能的策略。
|
5月前
|
关系型数据库 MySQL 测试技术
《阿里云产品四月刊》—瑶池数据库微课堂|RDS MySQL 经济版 vs 自建 MySQL 性能压测与性价比分析
阿里云瑶池数据库云原生化和一体化产品能力升级,多款产品更新迭代
下一篇
无影云桌面