简单介绍连接池的优点和原理?

2020-07-14 20:26发布

3条回答
向笑 - 活到老,学到老!
2楼 · 2020-07-15 08:21

原理:

数据库连接池负责分配、管理和释放数据库连接,它的核心思想是连接复用,通过建立一个数据库连接池,这个池中有若干个连接对象,当用户想要连接数据库,就要先从连接池中获取连接对象,然后操作数据库。一旦连接池中的连接对象被用完了判断连接对象的个数是否已达上限,如果没有可以再创建新的连接对象,如果已达上限,用户必须处于等待状态,等待其他用户释放连接对象,直到连接池中有被释放的连接对象了,这时候等待的用户才能获取连接对象,从而操作数据库。这样就可以使连接池中的连接得到高效、安全的复用,避免了数据库连接频繁建、关闭的开销。这项技术明显提高对数据库操作的性能。

优势:

1、程序启动时提前创建好连接,不用用户请求时创建,给服务器减轻压力;

2、连接关闭的时候不会直接销毁connection,这样能够重复利用;

3、如果超过设定的连接数量但是还没有达到最大值,那么可以创建;

4、如果空闲了,会默认销毁(释放)一些连接,让系统性能达到最优;


mrliang
3楼 · 2020-07-15 16:03

实 现资源分配合理化,提升效率

夏虫语冰
4楼 · 2021-11-18 10:09

数据库连接是非常宝贵的系统资源,连接一次数据库,底层程序需要经过很多步骤,花费比较多的时间,如果每次要操作数据库的时候才开始建立数据库连接,用完之后再关闭连接,势必造成程序的效率问题。

连接池的基本原理是,先初始化一定的数据库连接对象,并且把这些连接保存在连接池中。当程序需要访问数据库的时候,从连接池中取出一个连接,数据库操作结束后,再把这个用完的连接重新放回连接池。

当然以上我说的是只是一个最简单的工作原理,连接池本身是比较复杂的,里面涉及到并发的控制,连接的提取,回收算法,连接不够时的相应等等。

数据库连接池技术的思想非常简单,将数据库连接作为对象存储在一个Vector对象中,一旦数据库连接建立后,不同的数据库访问请求就可以共享这些连接,这样,通过复用这些已经建立的数据库连接,可以克服上述缺点,极大地节省系统资源和时间。


相关问题推荐

  • 回答 1

    1、进入tomcat的bin文件,运行startup.bat,如果在黑窗口最后一行出现server startup in[xxx] milliseconds 说明启动成功,此时不要关闭黑窗口,在浏览器输入http://localhost:8080 访问主页2、cmd运行startup显示不是内部或者外部命令,应该是环境变量配置...

  • 回答 3

    好处:线程使应用能够更加充分合理的协调利用cpu 、内存、网络、i/o等系统资源。线程的创建需要开辟虚拟机栈,本地方法栈、程序计数器等线程私有的内存空间。在线程的销毁时需要回收这些系统资源。频繁的创建和销毁线程会浪费大量的系统资源,增加并发编程的风...

  • 回答 3

    1、并发问题为了使连接管理服务具有最大的通用性,必须考虑多线程环境,即并发问题。这个问题相对比较好解决,因为各个语言自身提供了对并发管理的支持像java,c#等等,使用synchronized(java)、lock(C#)关键字即可确保线程是同步的。2、事务处理我们知道,事...

  • 回答 1

    第一个问题:1)GOTO指令在运行过程中不可以修改速度2)要修改速度的话,让它先到一个位置停止下来后,修改速度后再继续运行第二个问题:1)相对的位置运行的话,位置是正往正方向运行,负的话,就往负方向运行2)反向走的话,给个负数的距离就可以了...

  • 回答 2

     1、基本概念及原理  由上面的分析可以看出,问题的根源就在于对数据库连接资源的低效管理。我们知道,对于共享资源,有一个很著名的设计模式:资源池 (Resource Pool)。该模式正是为了解决资源的频繁分配?释放所造成的问题。为解决上述问题,可以采用数据...

  • 链接池的难度高吗?2020-07-31 17:11
    回答 1

    说实话不难

  • 回答 1

    阿里的druid 

没有解决我的问题,去提问