mysql Timeout expired. The timeout period elapsed prior to completio

本文探讨了多线程并发操作中出现的数据库连接超时问题,并提供了调整MySQL最大连接数、线程池数量及超时时间的方法。通过具体示例说明如何设置ADO.Net连接池参数以提高效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库连接超时,服务器无影响


一般在多线程并发的时候出现,可以修改mysql的最大连接,线程池数,超时时间
比如有个服务,一次处理20w条记录时用200条分解成1000个线程同时处理,但是mysql
设置成最大支持100个连接,也就是说有900处理要等待其他处理完释放连接才能用, 而每次
要处理200条,所以就有可能后边的900个等待的会出现这个异常 


设置连接池数量

ADO.Net 中的连接池大小可以通过数据库连接字符串来控制,例如:

    string cs =

    "server=.;uid=sa;pwd=tcaccp;database=pubs;pooling=true;min pool size=5;max pool size=10"

    其中 pooling 表示是否打开连接池,默认为打开,关掉时需要 pooling = false;

    min pool size 表示连接池最少保存几个连接对象;

    max pool size 表示连接池最多保存几个连接对象。(最大值不能为 0,也不能小于最小值)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值