乐趣区

关于java:Java面试数据库连接池有什么用它有哪些关键参数

一个工作 5 年的粉丝找到我,他说加入美团面试,遇到一个根底题没答复上来。

这个问题是:“数据库连接池有什么用?以及它有哪些要害参数”?

我说,这个问题都不晓得,那你我的项目外面的连接池配置怎么设置的?你们猜他怎么答复。懂得懂得啊。

好的,对于这个问题,咱们来看看普通人和高手的答复。

普通人:

数据库连接池的作用就是去复用这个连贯,那么就能够去缩小利用跟数据库之间连贯的一个建设的一个开销。

从而去晋升整个这个利用跟数据库拜访的一个性能。

高手:

对于这个问题,我从这几个方面来答复。

首先,数据库连接池是一种池化技术,池化技术的核心思想是实现资源的复用,防止资源重复创立销毁的开销。

而在数据库的利用场景外面,应用程序每次向数据库发动 CRUD 操作的时候,都须要创立连贯

在数据库访问量较大的状况下,频繁的创立连贯会带来较大的性能开销。

而连接池的核心思想,就是应用程序在启动的时候提前初始化一部分连贯保留到连接池外面,当利用须要应用连贯的时候,间接从连接池获取一个曾经建设好的链接。

连接池的设计,防止了每次连贯的建设和开释带来的开销。

连接池的参数有很多,不过要害参数就几个:

首先是,连接池初始化的时候会有几个要害参数:

  1. 初始化连接数,示意启动的时候初始多少个连贯保留到连接池外面。
  2. 最大连接数,示意同时最多能反对多少连贯,如果连接数不够,后续要获取连贯的线程会阻塞。
  3. 最大闲暇连接数,示意没有申请的时候,连接池中要保留的最大闲暇连贯。
  4. 最小闲暇连贯,当连接数小于这个值的时候,连接池须要再创立连贯来补充到这个值。

而后,就是在应用连贯的时候的要害参数:

  1. 最大等待时间,就是连接池外面的连贯用完了当前,新的申请要期待的工夫,超过这个工夫就会提醒超时异样。
  2. 有效连贯革除,清理连接池外面的有效连贯,防止应用这个连贯操作的时候呈现谬误。

不同的连接池框架,除了外围的参数以外,还有很多业务型的参数,比方是否要检测连贯 sql 的有效性、连贯初始化 SQL 等等,这些配置参数能够在应用的时候去查问 api 文档就能够晓得。

以上就是我对这个问题的了解。

总结

这个问题更进一步去问,就会问到 最大连接数、最小连接数应该如何设置?

连接池的实现原理啊等等。

所以倡议各位粉丝还是要有一个系统化的学习。

如果有任何面试问题、职业倒退问题、学习问题,都能够私信我。

版权申明:本博客所有文章除特地申明外,均采纳 CC BY-NC-SA 4.0 许可协定。转载请注明来自 Mic 带你学架构
如果本篇文章对您有帮忙,还请帮忙点个关注和赞,您的保持是我一直创作的能源。欢送关注同名微信公众号获取更多技术干货!

退出移动版