美文网首页
1-java连接池是什么意思?

1-java连接池是什么意思?

作者: Guoyubo | 来源:发表于2018-08-15 14:21 被阅读0次

做web开发3年了,经常用到什么数据库连接池啥的,一直一知半解,下面写下理解!

连接池目的其实就是为了减少初始化时间

连接池的几个概念,有助于后边一些文字的理解。

最原始的数据库使用就是打开一个连接并进行使用,使用过后一定要关闭连接释放资源。由于频繁的打开和关闭连接对jvm包括数据库

都有一定的资源负荷,尤其应用压力较大时资源占用比较多容易产生性能问题。由此使用连接池的作用就显现出来,他的原理其实不复杂:

先打开一定数量的数据库连接,当使用的时候分配给调用者,调用完毕后返回给连接池,注意返回给连接池后这些连接并不会关闭,而是

准备给下一个调用者进行分配。由此可以看出连接池节省了大量的数据库连接打开和关闭的动作,对系统性能提升的益处不言而喻。

几个概念

最小连接--应用启动后随即打开的连接数以及后续最小维持的连接数。

最大连接数--应用能够使用的最多的连接数

连接增长数--应用每次新打开的连接个数

举个例子说明连接池的运作:

假设设置了最小和最大的连接为10,20,那么应用一旦启动则首先打开10个数据库连接,但注意此时数据库连接池的正在使用数字为0--因为你并没有使用这些连接,而空闲的数量则是10。

然后你开始登录,假设登录代码使用了一个连接进行查询,那么此时数据库连接池的正在使用数字为1、空闲数为9,这并不需要从数据库打开连接--因为连接池已经准备好了10个给你留着呢。登录结束了,当前连接池的连接数量是多少?当然是0,因为那个连接随着事务的结束已经返还给连接池了。然后同时有11个人在同一秒进行登录,会发生什么:连接池从数据库新申请(打开)了一个连接,连同另外的10个一并送出,这个瞬间连接池的使用数是11个,不过没关系正常情况下过一会儿又会变成0。

如果同时有21个人登录呢?那第21个人就只能等前面的某个人登录完毕后释放连接给他。这时连接池开启了20个数据库连接--虽然很可能正在使用数量的已经降为0,那么20个连接会一直保持吗?当然不,连接池会在一定时间内关闭一定量的连接还给数据库,在这个例子里数字是10,因为只需要保持最小连接数就好了,而这个时间周期也是连接池里配置的。

参考网址

https://www.cnblogs.com/wiessharling/p/3624958.html(较简短)

https://www.cnblogs.com/linjian/p/4831088.html(较全面)

相关文章

  • 1-java连接池是什么意思?

    做web开发3年了,经常用到什么数据库连接池啥的,一直一知半解,下面写下理解! 连接池目的其实就是为了减少初始化时...

  • 理解Servlet

    搞Java开发不可避免要用到Servlet,知其然知其所以然,它是什么呢?可以看我前面写的1-Java的认识扫盲,...

  • Druid-目前最好的连接池

    ​ Druid是什么 Druid是阿里开源的连接池,是Java语言中最好的数据库连接池.Druid能够提供强大的监...

  • 知识点总结

    1-Java基础 1.1-String和StringBuffer区别,为什么是可变的,不可变的 String 类中...

  • 撩课-JavaWeb之什么是连接池与连接池使用

    什么是连接池 没有连接池的情况 数据库连接池 池 连接池 作用 数据库连接池 示意图 连接池中的属性 连接池使用 ...

  • 代码分析

    interface 相关配置 默认子连接池 定义全局连接池 注册连接池 默认子连接池 连接

  • SpringMVC整合druid

    druid是什么 Druid首先是一个数据库连接池。Druid是目前最好的数据库连接池,在功能、性能、扩展性方面,...

  • JDBC 进阶——连接池

    本文包括传统JDBC的缺点连接池原理自定义连接池开源数据库连接池DBCP连接池C3P0连接池Tomcat内置连接池...

  • 多线程

    1-JAVA多线程 2-生命周期 3-线程优先级 4-创建线程 5-Thread方法

  • java面试题(41-50)

    41.数据库连接池是什么意思? 像打开关闭数据库连接这种和数据库的交互可能是很费时的,尤其是当客户端数量增加的时...

网友评论

      本文标题:1-java连接池是什么意思?

      本文链接:https://www.haomeiwen.com/subject/amcwbftx.html