mysql(七)数据库连接池

什么是数据库连接池

数据库连接池(Connection pooling)是程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地对池中的连接进行申请,使用,释放

数据库连接池的运行机制

(1) 程序初始化时创建连接池
(2) 使用时向连接池申请可用连接
(3) 使用完毕,将连接返还给连接池
(4) 程序退出时,断开所有连接,并释放资源

开源数据库连接池

1 dbcp

dbcp可能是使用最多的开源连接池,原因大概是因为配置方便,而且很多开源和tomcat应用例子都是使用的这个连接池
这个连接池可以设置最大和最小连接,连接等待时间等,基本功能都有。这个连接池的配置参见附件压缩包中的:dbcp.xml
使用评价:在具体项目应用中,发现此连接池的持续运行的稳定性还是可以,不过速度稍慢,在大并发量的压力下稳定性
有所下降,此外不提供连接池监控

2 c3p0

c3p0是另外一个开源的连接池,在业界也是比较有名的,这个连接池可以设置最大和最小连接,连接等待时间等,基本功能都有。
这个连接池的配置参见附件压缩包中的:c3p0.xml。
使用评价:在具体项目应用中,发现此连接池的持续运行的稳定性相当不错,在大并发量的压力下稳定性也有一定保证,
          此外不提供连接池监控。

3 proxool

proxool这个连接池可能用到的人比较少,但也有一定知名度,这个连接池可以设置最大和最小连接,连接等待时间等,基本功能都有
这个连接池的配置参见附件压缩包中的:proxool.xml。
使用评价:在具体项目应用中,发现此连接池的持续运行的稳定性有一定问题,有一个需要长时间跑批的任务场景任务,同样的代码
在另外2个开源连接池中成功结束,但在proxool中出现异常退出
但是proxool有一个优势--连接池监控

4  Druid

阿里巴巴推出的国产数据库连接池,据网上测试对比,比目前的DBCP或C3P0数据库连接池性能更好

商业中间件连接池

1 weblogic的连接池

使用评价:在具体项目应用中,此连接池的持续运行的稳定性很强,在大并发量的压力下性能也相当优秀,另外在一些异常情况下连接池里的连接也能够及时释放。
          连接池监控一目了然,及时到位。

2 websphere的连接池

还是先来段题外话:记得有人说过,websphere只有版本6以后才算是websphere,个人很赞同。websphere 5以及以前的版本。。。还是忘了吧。
其实websphere的连接池秉承ibm一贯的风格:功能强大,使用复杂:)
使用评价:在具体项目应用中,此连接池的持续运行的稳定性相当强,在大并发量的压力下性能也足够优秀,另外在一些异常情况下连接池里的连接能够及时释放,
          连接池监控配置有些复杂,但是配置好后各项指标一目了然并且有图形显示

原文地址:https://www.cnblogs.com/amei0/p/8482877.html

时间: 2024-10-17 20:23:20

mysql(七)数据库连接池的相关文章

spark 大型项目实战(七):用户访问session分析(七) --数据库连接池原理

**文章地址:http://www.haha174.top/article/details/257789** 1.谈谈数据库连接池的原理 ------------- 这次我们采取技术演进的方式来谈谈数据库连接池的技术出现过程及其原理,以及当下最流行的开源数据库连接池jar包. 一.早期我们怎么进行数据库操作 1.原理:一般来说,java应用程序访问数据库的过程是: ①装载数据库驱动程序: ②通过jdbc建立数据库连接: ③访问数据库,执行sql语句: ④断开数据库连接. 2.代码 Public

MySql数据库连接池

1.传统链接(如下为示意图) 注意: (1).传统方式找DriverManager要连接,数目是有限的. (2).传统方式的close(),并没有将Connection重用,只是切断应用程序和数据库的桥梁,即无发送到SQL命令到数据库端执行  (3).项目中,对于Connection不说,不会直接使用DriverManager取得,而使用连接池方式. 2.采用连接池(示意图) 3.开源数据库连接池 (1).现在很多Web服务器(Weblogic, WebSphere, Tomcat)都提供了Da

Myeclipse WEB工程JSP使用JNDI 数据库连接池连接Mysql数据库

在网上查了很多,最后实现了.下面写一下过程: 首先,在WEBROOT/META-INF下建一个文件context.xml,内容为: <?xml version="1.0" encoding="UTF-8"?> <Context> <Resource name="jdbc/ConnectionPool" auth="Application" type="javax.sql.DataSour

Python实现Mysql数据库连接池

python连接Mysql数据库: Python编程中可以使用MySQLdb进行数据库的连接及诸如查询/插入/更新等操作,但是每次连接MySQL数据库请求时,都是独立的去请求访问,相当浪费资源,而且访问数量达到一定数量时,对mysql的性能会产生较大的影响.因此,实际使用中,通常会使用数据库的连接池技术,来访问数据库达到资源复用的目的. python的数据库连接池包 DBUtils: DBUtils是一套Python数据库连接池包,并允许对非线程安全的数据库接口进行线程安全包装.DBUtils来

swoole编译安装/数据库连接池/异步mysql客户端

一.编译安装php5.6 0.安装必要软件 http://www.cnblogs.com/itfenqing/p/6055138.html 1.下载php5.6.30 http://php.net/downloads.php 2.解压 3.编译时指定为mysqlnt,启用opcache ./configure --prefix=/usr/local/php56 --enable-fpm --enable-mysqlnd --with-mysqli=mysqlnd --with-mysql=mys

C#数据库连接池 MySql SqlServer

查阅了一天的资料来学习MySql数据库连接池,终于在一遍博文上找到了,自己也整理了一下,希望对大家有用处 1. 建立线程池 1 using MySql.Data.MySqlClient; 2 using System; 3 using System.Collections; 4 using System.Collections.Generic; 5 using System.Linq; 6 using System.Text; 7 using System.Threading.Tasks; 8

DBCP数据库连接池连接mysql数据库的时候 出现连接问题

在部署的项目的时候发现两个问题 ,第一个问题不是太容易发现 ,因为我部署的时候没问题 ,但是产品的同事在跑流程的时候总是出现一个connetException异常  自己看了半天没发现什么问题 去网上查了一下 说是msql的连接默认是八个小时 第二个问题就是 自己这边的数据库 隔一段时间不用的话 会自动断开  查了一下资料 是dbcp连接mysql时出现的这个问题  实际上两个问题算是一个问题吧 自己配置了一下 这几天没报这样的错误 !算是解决了吧!  <bean id="dataSour

mysql笔记八——开源数据库连接池DBCP和C3P0的使用

DBCP数据库连接池 DBCP 是 Apache 软件基金组织下的开源连接池实现,使用DBCP数据源,应用程序应在系统中增加如下两个 jar 文件: Commons-dbcp.jar:连接池的实现 Commons-pool.jar:连接池实现的依赖库 Tomcat 的连接池正是采用该连接池来实现的.该数据库连接池既可以与应用服务器整合使用,也可由应用程序独立使用. 核心代码 static{ InputStream in = JdbcUtil.class.getClassLoader(). get

Java-自定义简单的mysql数据库连接池

   当我们在使用java连接数据库的时候,要注册驱动,.再通过"驱动管理器"获取连接对象(Connection),当我们的程序被很多用户访问的时候,每次都创建一个Connection连接对 象的时候,程序会变得特别卡,这时候我们可以通过数据库连接池来解决这个问题. 用连接池来管理Connection,这可以重复使用Connection.有了池,所以我们就不用自己来创建Connection,而是通过池来获取Connection对象.当使用完Connection后,调 用Connecti