什么是数据库连接池
连接池是一种常用的技术,为什么需要连接池呢?这个需要从 TCP 说起。假如我们的服务器跟数据库没有部署在同一台机器,那么,服务器每次查询数据库都要先建立连接,一般都是 TCP 链接,建立连接就需要 3 次握手了,假设后台服务跟数据库的单程的访问时间需要 10ms,那么光是建立连接就花了 30ms,并且 TCP 还有慢启动的机制,实际上一次查询可能还不止 1 次 TCP 来回,查询效率就会大大降低。
为什么需要连接池
为了解决上述问题,我们就需要维护一些长链接,这样就不用每次都去建立连接,毕竟建立连接除了占用时间,还需要一些其他的系统资源。另外的好处,连接池让我们更加容易地管理,一方面是可以避免数据库资源都被某几个 API 占据,另一方面也可以避免资源泄露。
常用连接池:
DBCP tomcat的连接池
C3P0 hiberate的连接池
阿里Druid