同时连接MySql/C#
本文关键字:MySql 连接 | 更新日期: 2023-09-27 18:22:05
我有一个WCF Web服务,可以满足不同客户端的同时请求。该服务必须在每次请求时与mysql-Db进行通信。我面临的问题是,大量请求同时到来(约300-400),在与MySQL通信时,会弹出"无法连接到任何指定的MySQL主机"。到目前为止,我发现Mysql无法管理这么多同时连接,无法满足任何需求,并开始抛出错误。解决这个问题的最佳方法是什么?以下是每次收到请求时调用的代码片段:
try
{
MySqlCommand command = new MySqlCommand(query);
command.Connection = conn;
conn.Open();
long id = -1;
int _result = command.ExecuteNonQuery();
if (_result == 1)
{
//do something
}
conn.Close();
return id;
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (conn.State != ConnectionState.Closed)
{
conn.Close();
}
}
"//做某事"需要多长时间?如果它很短,我看不出你能做什么从代码中加快速度。如果时间很长,请考虑在执行任何操作之前关闭连接(可能是错误处理)。
(附带说明一下,您应该尝试using语句而不是try/catch块来关闭连接)
edit:同样,正如SLaks所说,"throw;"将做与"throw ex;"相同的事情,只是它将保留堆栈跟踪,这就是为什么不应该在那里使用"ex;",但如果用using替换它,这一点就没有意义了。