登录
2022-07-20 20:05:38

数据库连接池 免费编辑 添加义项名

B 添行刑加义项
?
义项指多义来自词的不同概念,如李娜的义项:网球运动员、歌手等;非诚勿扰的义项:冯小刚体青航执导电影、江苏卫视交友节目等。 查看详细规范>>
所属类别 :
计算机概念
计算机概念
编辑分类

数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。

基本信息

  • 中文名称

    数据库连接池

  • 概念

    一种关键的有限的昂贵的资源

  • 影响因素

    最大连接数,最小连接数

  • 功能

    分配、管理和释放数据库连接

折叠 编辑本段 背景

数据库连接是一种关键的、有限的、昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。

折叠 编辑本段 影响因素

发构数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,这些数据库连接的数量是由最小360百科数据库连接数制约。无论这些数实犯金获出开汉顾顾据库连接是否被使用,连接池都将一直保证至少拥有这么多的连接数量。连接池的最大数据库连接数量限定了这个连接池能占有的最大连接数,当应用程序向连接池请求的连接数超过最大连接数量时,这些请求将被加入到等待队列中。数据库连接池的最小连接数和最大连接数的设置要考虑到下列几个因究答此车还半厚华右武秋素:

1. 最小连接数

是连接池一直保持的数据库连接,所以如果应用程序对数据库连接的使用量不大,将会灯很歌妈村良有大量的数据库连接资源被浪费。

2. 最大连接数

是连接池能申请的最大连接数,如果数据库连接请求超过此数,后面口调族远细养油孔军的数据库连接请求将被加入到等待队列中,这会影响之后的数据库操作。

3. 最小连接数与比微为仍战层最大连接数差距

最小连接数与最大连接数相差太大,那么最先的连接请求将会获利,之后超过最小连接数量的连接请求等价于建立一个新的数据库连接。不过,这些大于最小连接数的数据库连接在使用完不会马上被释放,它将被放到连接池中等待重复使用或是空闲超时后被释放。

折叠 编辑本段 原理

连接池基本的思想是在系统初始化的时候,将数据库连接作为对象存储在内存中,当用户需要访问数据库时,并非建立一个新的连接,而是从连接池中取出一个已建立的空闲连接对象。使用完毕后,用户也并非将连接关闭,而是将连接放回连接池中,以供下一个请求访问使用。而连接的建立、断开都由连接池自身来管理。同时,还可以通过设置连接池的参数来控制连接池中的初始连接数、连接的上下限数以及每个连接的最大使用次数、最大空闲时间等等。也可以通过其自身的管理机制来监视数据库连接的数量、使用情况等。

折叠 编辑本段 Java连接池

在Java中开源的数据库连接池有以下几种 :

1、C3P0肉密困措倍雷转洋日物游:是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate 一起发布,包括了实现jdbc3和jdbc2扩展规范说明的Connection 和Statement 池的DataSources 对象。

2、Proxool:是一个Java SQL Driver驱动程序,提供了构轴克风境安著半对选择的其它类型的驱动住三看念临一科传困程序的连接池封装。可以非常简单的移植到现存的代码中,完全可配置,快速、成熟、健壮。可以透明地为现存的JDBC驱动程序增加连接池功能。

3、Jakarta DBCP:DBCP是一个依赖Jaka奏型需面言称例rtacommons-pool对象池制的数据库连接池。DBCP可以直接的在应用程序中使用。

4、DDConnection养所载Broker:是一据刻座零厚低个简单、轻量级的数据库连接池。

5、DBPool:是一举调深当际容个高效、易配置的数据库连接池量抗。它除了支持连接池应有倍情型却诗的功能之外,还包括了一个对象池,使用户能够开发一它面丝首鱼前单密分个满足自己需求的数据库连接池。

6、XAPool:是一个XA数据库连接池。它实现了javax.sql.XADataSource并提供了连接池工具。

7、Primrose:是微效一个Java开发的数据库连接池。当前支持的容器包括Tomcat4&5、Resin3与JBoss3。它同样也有一个独立的版回虽拉岁场生底本,可以在应用程序中使用而不必农请运行在容器中。Primrose通过一个WEB接口来控制SQL处理的追踪、配置器手顺布妈你尔,以及动态池管理。在重负荷的情况下可进行连接请求队列处理。

8、SmartPool:是一个连接池组件,它模仿应用服务器对象池的特性。SmartPool能够解决一些临界问题如连接泄漏(connection le烈们永aks)、连接阻塞、打开的J微学职技评加跳吗威DBC对象(如Statements、PreparedStatements)等。SmartPool的特性包括:

  • 支持多个pool
  • 自动关闭相关联的JDBC对象
  • 在所设定time-outs之后察觉连接泄漏
  • 追踪连接使用情况
  • 强制启用最近最少用到的连
  • 把SmartPool"包装"成现存的一个pool

9、MiniConnectionPoolManager:是一个轻量级JDBC数据库连接池。压述黑真时顶备岁它只需要Java1.5(或更高引系机说助)并且没有依赖第三方包。

环棉10、BoneCP:是一望卷求结儿仅个快速、开源的数据库连和算顾袁井门引造接池。帮用户管理数据连接,让应用程序能更快速地访问数据库。比C3P0/DBCP连接池速度快25倍。

11、Druid:Druid不仅是一个数据库连接池,还包含一个ProxyDriver、一系列内置的JDBC组件库、一个SQL Parser今所领

支持所有JDBC兼容的数据库,包括Oracle、MySql、Derby称劳住早先须、Postgresql、SQL Server、H2等

Druid针对Orac主条春去席制助军le和MySql做了特别优化,比如:

  • Oracle的PS Cache内存占用优化
  • MySql的ping检测优化

限则Druid提供了MySql、Oracle展水额友或种走压、Postgresql、SQL-92的SQL的完整支持,这是一个手写的高性能SQL P江宪黑刑没象红arser,支持Vis溶太祖氧岁守越价陆itor模式,使得分析SQL的抽象语法树很方便。

简单SQL语句用时10微秒以内,复杂S调唱期货QL用时30微秒。

通过Druid提供后保己其评路验续言花教的SQL Parser可以在JDBC层拦截SQL做相应处理,比如说分库分表、审计等。Druid防御SQL注入攻击的WallFilter,就是通过Druid的SQL Parser分析语义足赵位剧皇抓死纪实现的。

折叠 编辑本段 性能分析与评测

数据库连接池技术性能分析及评价的研究方法可分为3类:实测数据分析方法、仿真研究方法以及数学模型分析方法。数据库连接池的性能指标分析具体如下:

1、请求阻塞概率,即一个数据库连接请求因系统中没有可用述击专期际连接而被拒绝的概率。请求阻塞概率是衡量一个数据库连接池系统服务质量的重要指标。若请求阻塞概率过高,则应为系统配置更高的最大连接数。

2、系统平均连接数,即在稳态下数据库连接池建立连接数的均值。系统平均连接数反映了系统运行稳定后系统的实际并发用户数,它为数据库连接池技术配置参数提供了重要理论依据。

3、系统利用率,即连接用户数与连接池可建立的最大连接数的比。系统利用率的高低直接关系系统资源的使用情况,分析系统利用净的影响因素,对数据库连接池技术的参数配置有着重要参考意义。

4、系统吞叶量、即单位时间内完成服务的客广数。系统吞吐量直接反映整个系统处理连接请求的能力,是衡量系统性能的重要指标。

阅读全文

热点资讯

我的关注