大佬教程收集整理的这篇文章主要介绍了数据库连接池浅析,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
转自:nofollow">https://mp.weixin.qq.com/s?__biz=MjM5NzMymjAwMA==&mid=2651479069&idx=2&sn=253cccaaf504357059c2a058ec17a2b4&chksm=bd2530628a52b97414a905ff38992b1ae0f204f59c6a19f85725c0070147026cb3c4d4201eaa&mpshare=1&scene=23&srcid=0916L8CbL4jvNtde86HaUeMw#rd
<p style="clear:both;min-height:1em;color:rgb(62,62,62);font-family:'Helvetica Neue',Helvetica,'Hiragino Sans GB','Microsoft YaHei',Arial,sans-serif;font-size:16px;">
<span style="color:rgb(255,76,65);">简介
数据库连接池,这样做自然有它的理由。有时我们可能忘记了使用设计模式或者某种特定技术的理由,这时就值得我们反思为什么要使用它。每项技术或者每个技术决策都有它的优势和不足,如果不了解其缺点,你需要知道你失去了什么。
数据库连接池生命周期
数据库每个读写操作需要一个连接。数据库连接调用流如下图:
调用流程为:
数据库连接
数据库Driver打开数据库连接
数据库连接,打开TCP socket
数据库
关闭连接
关闭socket
关闭数据库连接是开销很大的操作。POSTGResql为每个客户端连接产生一个分离的OS进程,因此高频率地打开/关闭数据库连接会使数据库管理系统压力增大。
数据库连接最明显的原因是:
数据库管理系统创建/销毁TCP连接的OS I/O开销
垃圾
方法与使用HikariCP,HikariCP可能是目前最快的连接池框架。
关闭1000个连接。
teraTIONS = 1000;
sqlException {
<>teraTIONS; i++) {
关闭连接花费的时间,这个时间当然越短越好。
包括几十个应用,一个批处理器系统仅仅能够处理每小时大于200万次数据库连接,所以2个数量级的优化是值得考虑的。
数据库连接池后运行如此好的原因,要分析池连接管理的调用流程:
一个连接,池数据源会从可用的连接池获取新连接。仅当没有可用的连接而且未达到最大的连接数时连接池将创建新的连接。连接池的close()方法把连接返回到连接池而不是真正地关闭它。
数据库资源趋于饱和。
数据库服务器过载。如果一个应用消耗太多数据库流量,为防止它将数据库服务器压垮(因此影响整个系统),连接池将减少它对数据库的使用。
增加(尤其是大型企业级系统中)。所以没有银弹,你需要注意很多连接池配置比如:
获取连接超时时间
次数
下一篇文章将研究企业级数据库连接池的挑战和Flexy Pool如何帮助你找到合适的数据库连接池大小。
GitHub获取代码
wordpress.com/tree/master/db-facts
以上是大佬教程为你收集整理的数据库连接池浅析全部内容,希望文章能够帮你解决数据库连接池浅析所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。