什么是数据库连接池

连接池是一种常用的技术,为什么需要连接池呢?这个需要从 TCP 说起。假如我们的服务器跟数据库没有部署在同一台机器,那么,服务器每次查询数据库都要先建立连接,一般都是 TCP 链接,建立连接就需要 3 次握手了,假设后台服务跟数据库的单程的访问时间需要 10ms,那么光是建立连接就花了 30ms,并且 TCP 还有慢启动的机制,实际上一次查询可能还不止 1 次 TCP 来回,查询效率就会大大降低。

为什么需要连接池

为了解决上述问题,我们就需要维护一些长链接,这样就不用每次都去建立连接,毕竟建立连接除了占用时间,还需要一些其他的系统资源。另外的好处,连接池让我们更加容易地管理,一方面是可以避免数据库资源都被某几个 API 占据,另一方面也可以避免资源泄露。

什么是 HikariCP

HikariCP 是由在日本生活的美国人程序员开源的一个数据库连接池组件,代码非常轻量,并且速度非常的快。根据官方提供的数据,在 i7,开启 32 个线程 32 个连接的情况下,进行随机数据库读写操作,HikariCP 的速度是现在常用的 C3P0 数据库连接池的数百倍。在 SpringBoot2.0 中,官方也是推荐使用 HikariCP。

为什么 HikariCP 会那么快

1.字节码更加精简,所以可以加载更多代码到缓存。

2.实现了一个无锁的集合类型,来减少并发造成的资源竞争。

3.使用了自定义的数组类型,相对与 ArrayList 极大地提升了性能。

4.针对 CPU 的时间片算法进行优化,尽可能在一个时间片里面完成各种操作。

与 Druid 对比

在 GitHub 上有网友贴出了阿里巴巴 Druid 与 hikari 的对比,认为 hikari 在性能上是完全秒杀阿里巴巴的 Druid 连接池的。对此,阿里的工程师也做了一定的回应,说 Druid 的性能稍微差点是锁机制的不同,并且 Druid 提供了更丰富的功能,两者的侧重点不一样。

如何选择

选择哪一款就见仁见智了,不过两款都是开源产品,阿里的 Druid 有中文的开源社区,交流起来更加方便,并且经过阿里多个系统的实验,想必也是非常的稳定,而 Hikari 是 SpringBoot2.0 默认的连接池,全世界使用范围也非常广,对于大部分业务来说,使用哪一款都是差不多的,毕竟性能瓶颈一般都不在连接池。大家可根据自己的喜好自由选择。

作者:jianzh5
链接:https://ld246.com/article/1582096971127
来源:链滴

c#打开数据库连接池的工作机制_它是谁?一个比 c3p0 快 200 倍的数据库连接池!...相关推荐

  1. 它是谁?一个比 c3p0 快200倍的数据库连接池!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 什么是数据库连接池 连接池是一种常用的技术,为什么需要连接池呢?这 ...

  2. c#打开数据库连接池的工作机制_详解数据库连接池概念、原理、运行机制等

    概述 数据库连接池是负责分配.管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个.那么其中的运行机制又是怎样的呢?今天主要介绍一下数据库连接池原理和常用的连接池. ...

  3. c#打开数据库连接池的工作机制_数据库连接池-tomcat-jdbc使用笔记

    现在 主流的数据库连接池有:Proxool.C3P0.DBCP.tomcat-jdbc.Druid.其中tomcat-jdbc是tomcat服务器比较可靠的 数据库连接池. Tomcat 在 7.0 ...

  4. mysql连接池的工作原理_连接池工作原理

    连接池工作原理 连接池技术的核心思想是连接复用,通过建立一个数据库连接池以及一套连接使用.分配和管理策略,使得该连接池中的连接可以得到高效.安全的复用,避免了数据库连接频繁建立.关闭的开销. 连接池的 ...

  5. 说出数据连接池的工作机制是什么?

    数据库连接池负责分配.管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个:释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏 ...

  6. java io工作机制_深入分析Java I/O 工作机制

    前言 :  I/O 问题是Web 应用中所面临的主要问题之一.而且是任何编程语言都无法回避的问题,是整个人机交互的核心. java 的I/O类操作在java.io 包下,将近80个子类, 大概可以分成 ...

  7. 大数据之-Hadoop3.x_Hadoop之HDFS_DataNode的工作机制_原理---大数据之hadoop3.x工作笔记0077

    然后我们再来看一下hadoop中,datanode的工作机制. 1.datanode1,比如启动的时候,它会向namenode进行注册,把自己的信息,比如我存了哪些block块信息, 块中存了块数据, ...

  8. 健康档案开放工作机制_使开放的组织工作(书)

    健康档案开放工作机制 开放的组织社区肯定知道如何举办聚会. 2017年1月18日,每个人都聚集在Twitter上庆祝去年12月发行的The Open Organization Workbook . 来 ...

  9. c#打开数据库连接池的工作机制_c#数据库连接池的用法

    我为什么喜欢用C#来做并发编程 题记:就语言和运行时层面,C#做并发编程一点都不弱,缺的是生态和社区. 硅谷才女朱赟(我的家门)昨天发了一篇文章<为什么用 Java -- 关于并发编程>, ...

最新文章

  1. 随机一段字符串,浏览器点击复制
  2. 根据从日期控件选定的时间以表格形式显示数据_VB项目开发FlexGrid控件使用讲解...
  3. 搞定mac的bashrc
  4. 互联网女皇报告:拼多多美团崛起,支付宝微信同台竞技!
  5. 在内核中如何获得系统的日期和时间
  6. 数据通过蓝牙传输中...70.46k/s
  7. 【问题解决】解决eclipse不识别Android手机的问题
  8. 毕业一年后我转行NLP 这几点宝贵经验分享给大家
  9. 《达芬奇密码》中的yinhui
  10. UE4入门序列06(Unreal源码编译及打包专用服务器)
  11. 2017 NIPS | Inductive Representation Learning on Large Graphs
  12. 花之语第十四期:萱草花
  13. 【荐书】C程序设计语言(第二版)
  14. 数据采集框架 kafka
  15. 牛顿法和割线法方程求根(C语言)
  16. 手动刷入Android 4.4.1 KOT49E OTA更新包
  17. VB6.0 google 地图显示GPS数据
  18. 手机网页html怎样阻止广告,Webview拦截广告
  19. android:登录界面记住密码
  20. 汇总 | AR眼镜开发资源合集(建议收藏)

热门文章

  1. libcudart.so.8.0 cannot open shared object file: No such file or directory
  2. jQuery学习笔记02:核心部分
  3. TensorFlow学习笔记02:TensorBoard可视化入门
  4. 小甲鱼python课后答案40讲_小甲鱼Python第二十一讲课后习题
  5. Bzoj 4422: [Cerc2015]Cow Confinement(线段树+扫描线)
  6. 【英语学习】【Daily English】U07 Restaurant L01 What's a seafood paella, though?
  7. php Excel工程进度管理,打造最全面的 PHPExcel 开发解决方案
  8. 深入理解 main 方法
  9. npoi excel 复制行_Excel的格式刷功能你真的会用吗?这样刷更加方便快捷
  10. 在 Delphi 6 中使用 Hashtable