链接池的一些感悟

在数据库访问时,创建链接须要400-500毫秒的时间。若是使用链接池能够加强系统的性能,主要缓存保留必定数量数据链接,能够重复使用。但并非使用链接池就能改进性能,下面列举常见的链接池问题和什么是好的链接池。

是否使用链接池?

使用链接池的条件是,是否使用链接池后,能减小数据库链接所用的时间,并总体加强系统吞吐量。

链接池与资源的联系

若是缓存一个链接,好比数据库服务端须要1M内存保存一个链接,那么若是一个服务器链接池缓存200个链接,数据库服务端须要消耗200M,那么使用反向代理的大型服务架构,好比如今有20台服务器用来负载均衡,那么数据库服务端就消耗了4000M(4G)内存用来维护保持链接,这个资源消耗量是很是大。因此考虑链接池与资源的联系很大程度成线性递增关系。

链接池的常见问题

1.超时处理,从链接池获取数据库链接须要作超时处理,不能一直阻塞直到获取到链接

2.最大链接数,最大链接数太小形成链接延迟,链接池获取链接超时,阻塞等问题。最大链接过大给数据库服务端增长资源负担。

3.链接池链接数量与线程的关系,通常链接数量与线程的数量成正比,最大链接能够设定为平均线程最大数。

4.链接的分派粒度,通常为一个线程分派一个链接,而后在处理合适大小的数据操做后返还给链接池。好比在网站方面一个页面的请求开始到结束做为一个链接的分派。


链接池链接的类别

1.共享链接,有些线程获取链接只要作简单数据查询,并且占有时间不是很是长,这时,这类链接能够共享给这类线程。以便高效使用链接.。
在获取共享链接时,可为链接作共享计数,这样经过heap能够快速获取共享量最小的链接,加快数据访问。

2.独享链接,有些线程可能须要作大量的数据库更新,插入,查询等。好比用于处理用户注册的线程须要初始化大量的数据而且查询访问大量的数据,这时就能够为此类线程分派独享链接完成这类事务。

3.缓存链接,这类链接主要用于缓存链接,以便须要时来使用。数据库

相关文章
相关标签/搜索