问题描述
C3p0连接可以设定最大连接数:连接池中最多可以存在的连接个数?如果没有这个参数,连接太多的话,数据库岂不承受不了。 问题补充:caizi12 写道
解决方案
不是空闲的,是指整个连接池总共的连接数,至于连接是使用还是空闲,是C3P0在使用时自己去管理的如果请求连接数超出了连接池数量的话,需要等待有连接从使用返回空闲状态才能继续分配但是有一个问题是lz需要考虑的:1. 使用连接池需要有良好的上层构架,要保证对数据库连接的使用被限制在最小范围,一旦连接使用完毕要及时而快速的归还给连接池2. 虽然网站的访问量可能同时在线人数有几千人,但是需要考虑真正需要同时查询数据库的请求到底有多少,因为大多数查询速度是很快的,查询完成后连接迅速归还连接池就可以保证后续的查询继续使用。当然,具体的适合你的项目使用的连接数,需要你针对项目特性进行分析,并进行性能测试后确定。
解决方案二:
C3P0当然可以设定连接池中的最大连接数,不然连接池也失去了其管理连接的意义使用:minPoolSize 和 maxPoolSize 设置C3P0的最小和最大连接数并使用: initialPoolSize 设置C3P0启动时的初始连接数C3P0的设置参数很多,如果你想详细了解的话,请参考相关的说明文档http://wenku.baidu.com/view/67aad95bbe23482fb4da4c76.html
解决方案三:
我只是举个例子,实际能支持多少我也没测试过。如果2G只能承受2000个连接,再有新的连接肯定不行了,承受不了了。本来你电脑同时开两个魔兽,内存刚好够用,再开一个你想想有什么结果,不是卡机就是死机,道理都差不多地。
解决方案四:
这是不c3p0决定的,他只是管理者,不是承受者。能有多少连接看你用的什么web服务器,硬件服务器配置怎么样。好比1G内存的服务器只能承受100个连接,那你的连接最多只能有100个连接,2G内存有可能承受200个连接,关键看你的硬件服务器。