关于一个数据库连接问题,我启动多个线程执行同一条查询语句,会报"Too many connections"
在spring配置文件初始化连接是10条,不考虑增大mysql.ini的max_connections的连接数!目前的方法是:把第一次访问查询的表,缓存起来!后面的查询语...
在spring配置文件初始化连接是10条,不考虑增大mysql.ini的max_connections 的连接数!
目前的方法是:把第一次访问查询的表,缓存起来!后面的查询语句和修改语句都是不同表里面的,我再启动多线程测试,到查询语句和修改语句执行完毕,还是10条连接,也没有出现"Too many connections",谁能给我解释下么?或者有别的更好方法
我这个是为了解决并发的情况!我想知道为什么,建立缓存后,其他的sql语句为什么不建立连接了? 展开
目前的方法是:把第一次访问查询的表,缓存起来!后面的查询语句和修改语句都是不同表里面的,我再启动多线程测试,到查询语句和修改语句执行完毕,还是10条连接,也没有出现"Too many connections",谁能给我解释下么?或者有别的更好方法
我这个是为了解决并发的情况!我想知道为什么,建立缓存后,其他的sql语句为什么不建立连接了? 展开
4个回答
展开全部
一般这种是因为超出数据库最大链接上限。再建立链接,不管缓存多少,会自动队列消息等待。Timeout时间内没有链接取消无法获得链接权限。可以将自己的数据库链接个数设置大一些。
更多追问追答
追问
我上面说的:正因为第一次访问用了缓存,后面的更新操作才没出现连接过多!我想知道这是为什么?
追答
这就跟你去医院排队就医。加入有人可以让你插队的位置。你就能提前进去。没有的话,你就从最后开始排。排队过程网络也在不听的刷新各个连接。你有缓存相对就不容易丢失队列。没缓存反而容易丢失队列需要再次发出请求。服务器才能响应。
展开全部
你没有用Hibernate吗,他和Spring是天衣无缝的组合。
在连接数据上非常方便的。
在连接数据上非常方便的。
追问
公司用的框架是ibaties
追答
大同小异,HIbernate和ibaties都是数据库持久化操作的框架。
不是吗???
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
爱莫能助啊!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
程序里是不是已经关闭连接了
更多追问追答
追问
释放了,我这个是为了解决并发的情况
追答
已经释放了,连接也就断开了,就不会出现"Too many connections",除非你同一时间运行的线程中的正在使用的连接数大于你的最大连接数了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询