同时连接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();
            }
        }

同时连接MySql/C#

"//做某事"需要多长时间?如果它很短,我看不出你能做什么从代码中加快速度。如果时间很长,请考虑在执行任何操作之前关闭连接(可能是错误处理)。

(附带说明一下,您应该尝试using语句而不是try/catch块来关闭连接)

edit:同样,正如SLaks所说,"throw;"将做与"throw ex;"相同的事情,只是它将保留堆栈跟踪,这就是为什么不应该在那里使用"ex;",但如果用using替换它,这一点就没有意义了。