php中的数据库连接池 php连接的数据库通常为( 三 )


问题七:数据库连接池的作用是什么?连接池是被j2ee服务器打开和维护的
对应1、2、4的JDBC驱动程序
连接池一般比直接连接更有优越性
因为它提高了性能的同时还保存了
宝贵的资源 。
打开数据库连接时CPU和网络的重要
任务 , 因此,在整个应用程序的使用过程
当中重复的打开直接连接将导致性能的下降 。
而池连接只在服务器启动时打开一次,从而
消除了这种性能问题 。
另外,因为连接只用于很短的时间,
所以,连接可以被有效共享,
而且有关连接参数的特有信息,
只对池驱动程序有效,
如数据库用户名称和密码,
从而增强了系统的安全性和可管理性 。
问题八:开源的数据库连接池和普通的数据库连接池有什么区别在项目中尝试使用了几种开源的数据库连接池实现 。一种是dbcp,一种是c3p0 , 还有一种是proxool,这几种数据库连接池都可以很容易的在Spring配置起来 。性能总体上上感觉dbcp为最优 , 因为稳定性和并发性都是我的项目需要的 。
项目中经过反复测试,如果web server和数据库server不是同一个机器的话,在断网时间比较短的时间内三种数据库连接池都能较好的重连,但是在断网时间超过8个钟头 proxool就不能恢复工作了 。但是dbcp却能很快的重新连接 。实际生产环境中稳定性和总体性能是最重要的,都需要做相应的测试才能放心的让系统上生产线 。
这里给出项目中数据库连接池配置:
dbcp的jndi:13 4 java:p/env/jdbc/mysql5 6 proxool(proxool-0.9.0RC1)的配置: .mysql.jdbc.Driver jdbc:mysql:ip:3306/dbname?useUnicode=truecharacterEncoding=utf8autoReconnect=true user password 500 15000 select CURRENT_DATE true mysqlProxoolDataSource 1000 false 建议使用DBCP,配置在tomcat中,然后在spring中使用jndi的形式获取 。c3p0(c3p0-0.9.0): 1 3 4 .mysql.jdbc.Driver 5 6 7 jdbc:mysql:192.168.0.225:3306/sendinmdb?useUnicode=truecharacterEncoding=utf8autoReconnect=true 8 9 10 ********11 12 13 ********14 15 16 10017 18 19 5020 21 22 10023 24 25 100026 27 28 3029 30 直接copypaste到spring配置文件里就可以使用了 。配置一些额外的tomcat 的DBCP连接池参数,也可以更好的使用到类似proxool提供的功能,只是dbcp更加稳定而已 。tomcat/conf/context.xml中插入一个Resource元素: 解释一下以下这些参数的含义:
validationQuery = select current_date()
testOnBorrow = true
testOnReturn = false
testWhileIdle = true
当 从池中获取一个Connection后使用 select current_date() 来测试该数据库连接的可用性 , 如果SQL语句返回结果则认为是一个有效的连接 , 否则将继续测试知道可以拿到有效的连接 。当返回Connection给池的时候不进行验证,但是Connection空闲的时候就要进行认证 。
timeBetweenEvictionRunsMillis = 15000
DBCP 清空线程睡眠的间隙,如值为负数则不运行该线程
numTestsPerEvictionRun = 10"......
问题九:sqlite 使用什么数据库连接池数据库连接是一种有限的昂贵的资源,
数据库连接影响到程序的性能指标 。
数据库连接池正是针对这个问题提出来的 。数据库连接池负责分配、
管理和释放数据库连接 , 
它允许应用程序重复使用一个现有的数据库连接 , 
而再不是重新建立一个;
释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数
据库连接而引起的数据库连接遗漏 。
这项技术能明显提高对数据库操作的性能 。
问题十:说出数据连接池的工作机制是什么?以典型的数据库连接池为例:首先普通的数据库访问是这样的:程序和数据库建立连接 , 发送数据操作的指令,完成后断开连接 。等下一次请求的时候重复这个过程,即每个请求都需要和数据库建立连接和断开连接,这样当数据量大的时候系统的消耗是很大的 。连接池就是为了解决这个问题:在一个空间中预先建立好一定数量的连接,当程序请求数据时直接使用池中的现存的连接,不需要重复建立连接和断开的过程 , 节省了时间提高了性能

推荐阅读