Code Bye

mysql连接池问题

假设本人数据库允许的最大连接数是100,而本人程序代码里创建连接池的时候连接池数量是10.当用户请求的时候,已经用了10个连接之后,第11个连接上来的时候会出现什么情况,是排队等待?等连接池里这10个空闲一个的时候在继续,还是跳过连接池,直接从数据库那边操作(可能说的不准确,原因是本人也不知道怎么形容)。
假如是排队等待的话,那是不是意味着数据库的这100个最大连接是没有意义的了,真正的限制是在连接池这里运行的最大数量了?
解决方案:10分
对,真正起作用的就是 程序那一部分的连接池,原因是你的程序只支持10个,第11个用户过来了,这个时候连接池里没有连接了,
不过还要看你的程序设置的最大连接数,例如你的程序最大的连接数是100,那么就会创建一个连接,就可以用了。
这个的看你的程序是什么语言,应该会有一个默认的最大链接数量,这个应该不会太小。
解决方案:20分
假设本人数据库允许的最大连接数是100,而本人程序代码里创建连接池的时候连接池数量是10.当用户请求的时候,已经用了10个连接之后,第11个连接上来的时候会出现什么情况,是排队等待?等连接池里这10个空闲一个的时候在继续,还是跳过连接池,直接从数据库那边操作(可能说的不准确,原因是本人也不知道怎么形容)。
ANSWER]:程序连接池10个,就是先创立了10个数据库连接,当你用户请求的时候,假如有空闲的连接,直接去池里拿空闲的连接,反而假如已经有了10个用户请求了,第11个用户上来的时候,在你的程序连接池里面,原因是已经满10个了,所以会让你等待并且报错连接池已经满了,而在数据库里面,没有任何影响关系的。
假如是排队等待的话,那是不是意味着数据库的这100个最大连接是没有意义的了,真正的限制是在连接池这里运行的最大数量了?
是的,原因是你的用户请求都是去程序连接池里面去取得。但是数据库的100这个最大值设置还是有用的,原因是连接数据库的也许不止你这一个程序连接池,还有直接的dba连接还有一些数据库分析人员也要连接数据库,他们是不需要使用代码连接池的,他们直接jdbc或odbc远程单独连接了啊。
解决方案:10分
对的,程序设置的;连接池大小是供程序使用的,但是不能将数据库的全部连接都给程序,要预留给其他用户使用

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明mysql连接池问题