数据库连接池??
2个回答
展开全部
让我来告诉你把,我是有这方面感受的
数据库和应用程序的连接不是无限制的。要知道一点就是,无论是什么数据库都是按可连接数和可支持CPU数来卖的,但现在的企业老板都希望成本降到最低,所以买数据库肯定不会花多少钱,买服务器也不会买多少CPU啦,这样你能随便浪费数据库连接吗?
如果你几下就把数据库连接用完了,别人就连不上了,所以必须是连上以后马上读数据,读完数据马上关闭,把连接数据库的机会赶快让出来。
但是每次在关闭、重新连接数据库之间,这个操作是很复杂的,^_^,当然这已经被封装起来,不用你去管,但很费时间,而连接池就是把连接缓存起来,而不是销毁,当你用完以后并关闭的时候,并不销毁这个连接,而是把他保存起来,留着给其他人用,免得下去重新生成这个连接
数据库和应用程序的连接不是无限制的。要知道一点就是,无论是什么数据库都是按可连接数和可支持CPU数来卖的,但现在的企业老板都希望成本降到最低,所以买数据库肯定不会花多少钱,买服务器也不会买多少CPU啦,这样你能随便浪费数据库连接吗?
如果你几下就把数据库连接用完了,别人就连不上了,所以必须是连上以后马上读数据,读完数据马上关闭,把连接数据库的机会赶快让出来。
但是每次在关闭、重新连接数据库之间,这个操作是很复杂的,^_^,当然这已经被封装起来,不用你去管,但很费时间,而连接池就是把连接缓存起来,而不是销毁,当你用完以后并关闭的时候,并不销毁这个连接,而是把他保存起来,留着给其他人用,免得下去重新生成这个连接
Storm代理
2023-07-25 广告
2023-07-25 广告
StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,Sto...
点击进入详情页
本回答由Storm代理提供
展开全部
我跟你分享一下我的理解和体会。
你试着写一个10000次循环。循环着做意见这样的事情:
for(int i=0;i<10000;i++){
System.Data.SqlClient.SqlDataReader sda = GetDateReader("select * from XX");
sda.read();}
我这里的GetDateReader函数,返回一个SqlDataReader。这样做然后运行。(具体方法和实现不写了)你会发现他说连接池不够用。
为什么呢?因为你打开了那么多个连接,却都没有关闭。洗完澡没有衣服穿,都待在这个池里面,后续的操作也不好实现。
希望能对你有帮助。另外建议你用这些对象完后,都要记着关闭!不然就待在里面了。
你试着写一个10000次循环。循环着做意见这样的事情:
for(int i=0;i<10000;i++){
System.Data.SqlClient.SqlDataReader sda = GetDateReader("select * from XX");
sda.read();}
我这里的GetDateReader函数,返回一个SqlDataReader。这样做然后运行。(具体方法和实现不写了)你会发现他说连接池不够用。
为什么呢?因为你打开了那么多个连接,却都没有关闭。洗完澡没有衣服穿,都待在这个池里面,后续的操作也不好实现。
希望能对你有帮助。另外建议你用这些对象完后,都要记着关闭!不然就待在里面了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询