点击上方“方志朋”,选择“设为星标”

回复”666“获取新整理的面试文章

什么是数据库连接池

连接池是一种常用的技术,为什么需要连接池呢?这个需要从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默认的连接池,全世界使用范围也非常广,对于大部分业务来说,使用哪一款都是差不多的,毕竟性能瓶颈一般都不在连接池。大家可根据自己的喜好自由选择。


热门内容:

  • 终于放弃了单调的swagger-ui了,选择了这款神器—knife4j

  • Java8中一个极其强悍的新特性,很多人没用过(非常实用)

  • 消灭 Java 代码的“坏味道”

  • 代码生成器:IDEA 强大的 Live Templates

  • 2020 年,给你 8 个程序员接私活的网站

  • Vert.x!这是目前最快的 Java 框架

  • SpringBoot线程池的创建、@Async配置步骤及注意事项

  • 看看,这些细节上的坑,你犯了多少?

  • 老大说,网上这种获取真实IP地址的方法不对,我不信...

  • AJAX 请求真的不安全么?

  • 你知道为什么Java的main方法必须是public static void?

  • 谈谈中间件开发,给想从事中间件开发的同学

  • 大年夜排查bug:竟然是同事把Redis用成这鬼样子,坑了我

最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。

获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

明天见(。・ω・。)ノ

它是谁?一个比 c3p0 快200倍的数据库连接池!相关推荐

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

    什么是数据库连接池 连接池是一种常用的技术,为什么需要连接池呢?这个需要从 TCP 说起.假如我们的服务器跟数据库没有部署在同一台机器,那么,服务器每次查询数据库都要先建立连接,一般都是 TCP 链接 ...

  2. 比用Pytorch框架快200倍!0.76秒后,笔记本上的CNN就搞定了MNIST | 开源

    博雯 发自 凹非寺 量子位 报道 | 公众号 QbitAI 在MNIST上进行训练,可以说是计算机视觉里的"Hello World"任务了. 而如果使用PyTorch的标准代码训练 ...

  3. 超级计算机summit存储容量,天河3号超级计算机 我国正在开发超级计算机 将比”天河一号”快200倍...

    核心提示:国家超级计算天津中心应用研发工程师张婷表示,新开发的超级计算机系统将比我国2010年开通运行的第一台千万亿次超级计算机"天河一号"运算速度要快200倍,存储容量高达100 ...

  4. 【张小平工作日志】DBCP、c3p0、Druid、Proxool数据库连接池比较

    定义 数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出.对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标.数据库连接池正是针对这个问 ...

  5. php 数据 缓存,php终极数据缓存,比redis、GlobalData等快200倍以上,极致性能

    一.效果:每秒读取2000万条.写入2200万条.cpu开销很小二.原理:1.将数据以数组方式存储在内存中,php进程需要数据时直接通过内存地址访问数据,没有任何IO开销以及CPU开销. 三.具体实现 ...

  6. C3P0的使用 Spring配置数据库连接池

    在学习的时候,发现自己和视频中有差别-不知道怎么回事 https://www.bilibili.com/video/av34716912/?p=8 问了一下ZJJ学霸,完美解决 一是缺少jar包 二是 ...

  7. c3p0,DBCP,Druid(德鲁伊)数据库连接池

    c3p0,DBCP,Druid(德鲁伊)数据库连接池 每博一文案 佛说:前世 500 次的回眸,才换来今生的一次擦肩而过. 人与人之间的缘分,真的无需强求,并不是所有的感情都能天长地久,正如<越 ...

  8. Java数据库连接池知识汇总(C3P0+DBCP+Druid)

    为什么要使用数据库连接池技术? 数据库连接池技术的优点 1. 资源重用 由于数据库连接得以重用,避免了频繁创建,释放连接引起的大量性能开销.在减少系统消耗的基础上,另一方面也增加了系统运行环境的平稳性 ...

  9. RedisJson 是什么?比ES快 500 倍?

    -     概述    - 近期官网给出了RedisJson(RedisSearch)的性能测试报告,可谓碾压其他NoSQL,下面是核心的报告内容,先上结论: 对于隔离写入(isolated writ ...

最新文章

  1. 设计模式之C#实现---Builder
  2. DLL load failed while importing _pywrap_tensorflow_internal
  3. 在Coding.net创建项目开发
  4. lisp 计算三点的夹角_已知三点坐标求夹角 - 程序语言 - 小木虫 - 学术 科研 互动社区...
  5. 通信系统设计与python的书_腾讯十年Python开发老司机推荐的入门书籍,你确定不看吗?...
  6. VMware vSphere 6 Enterprise Plus 永久激活许可证-亲测可用
  7. php xss 实例,php - 关于sql注入和xss的具体实例分析
  8. python idls_Python argparse模块实现模拟 linux 的ls命令
  9. java 控制台输出到gui_java – 如何将类似窗口的“控制台”添加到GUI?
  10. PHP大文件分割上传(分片上传)
  11. 定时任务_SpringTask 定时任务
  12. 深度学习:Imagenet Object Classification方法
  13. 实战经验总结:怎么避免和解决LinkedIn领英帐号被封(被限制登录)?
  14. 双击div变成可编辑区的简单实现
  15. native mysql 分区_MySQL-表分区
  16. 两台电脑通过网线共享文件
  17. 【Python+OpenCV+PyTorch】基于Python的连连看自动操作器
  18. vue-element-admin基础学习
  19. 云服务器系列2-frp-云服务器内网穿透windows远程控制实践
  20. g2o学习记录(4)cmake-gui再次编译g2o及不太完美的处理cs.h错误[20190323已找到完美解决方案](非干货纯记录,可不看)

热门文章

  1. 010 并发的三个特性
  2. eoLinker AMS 专业版V3.3发布:分享项目可以测试并选择分享内容等
  3. python学习点滴记录-Day10-线程
  4. BOS项目 第2天(BaseDao、BaseAction、用户登录、自定义strust登录拦截器)
  5. 全国移动联通基站数据升级包(2013年1月基站升级包).rar
  6. LeetCode实战:字符串转换整数 (atoi)
  7. 基于Matlab的遗传算法优化BP神经网络在非线性函数拟合中的应用
  8. 【POJ/算法】 3259 Wormholes(Bellman-Ford算法, SPFA ,FLoyd算法)
  9. 20个案例详解 Pandas 当中的数据统计分析与排序
  10. 全员编程时代,人类高质量程序员应具备哪三大特质?