小弟对数据库连接数有些疑问想请各位大哥解释下 如果没用数据连接池的话,是不是1000个并发操作(访问数据库的增,删,改,查)就有1000个数据库连接呢?还是ORACLE等数据库自己设置的?超过这些链接数的话,是不是程序就一直出于等待状态还是把数据库DOWN掉了? 如果用数据库连接池的话。比如dbcp,最大连接数一般只设置几十,这个够用吗?同时几百个并发操作能处理完吗?如果一个操作没处理完就始终占用这个链接吧 我就是不太清楚数据库连接的个数是程序设定的还是数据库设定,大小有什么影响,设置不当会不会经常造成死机,在程序优化方面,连接池改怎么优化,谢谢
一个线程在一个时间点,如果正在做数据库处理,那么就占一个连接,
n个人同时去点击一个查询页面,那么他们可能需要1~n个链接,最坏的情况就是n个人同时执行了数据库查询的代码,也就需要n个连接
最大连接数和你的程序的并发用户数,以及你的程序的性能有关一般的应用50就差不多了,1000个用户在线不代表会同时做操作,同时操作也不代表会同时执行数据库查询代码
一般,数据库连接如果不够用的话,可以适当加大最大连接数,如果还是不行,那就证明是性能问题,也就是数据库处理代码性能低下,每个用户占用的时间太长,释放的速度小于用户新请求连接的速度,这种情况很常见,需要做相应的优化,单纯增加最大连接数没有任何意义
如果用数据库连接池的话。比如dbcp,最大连接数一般只设置几十,这个够用吗?(绝大多数情况够用)
同时几百个并发操作能处理完吗?(这个不是很清楚,如果真的是同时操作可能有等待,不知道你说的并发到底是个什么概念)
如果一个操作没处理完就始终占用这个链接吧 (没释放连接的话,就一直占用)
一般数据池都管理数据库的链接,当不用的时候给你关闭,留一定的链接池让程序使用,如果达到设置的最大数,只能是等待,等关闭相应链接后继续。 如果用数据库连接池的话。比如dbcp,最大连接数一般只设置几十,这个够用吗?同时几百个并发操作能处理完吗?如果一个操作没处理完就始终占用这个链接吧 我就是不太清楚数据库连接的个数是程序设定的还是数据库设定,大小有什么影响,设置不当会不会经常造成死机,在程序优化方面,连接池改怎么优化,谢谢具体设置是跟本身的程序有关。这个不好说。