MySql连接未使用.net MySql连接器关闭

时间:2014-06-26 17:39:48

标签: c# mysql mysql-connector

MySql Connection将进入睡眠模式,而不是在mysql中关闭。我使用MySql.Data 6.5.4版本与mysql进行通信。我不确定我在下面的代码中做错了什么。

   try
        {
            using (var conn = new MySqlConnection(strConnection))
            {
                conn.Open();

                using (var cmd = new MySqlCommand(strSQLStatement, conn))
                {
                    var adapter = new MySqlDataAdapter(cmd);
                    adapter.Fill(ds);
                }
            }
        }
        catch (Exception ex)
        {
            ErrorLogger.WriteError(string.Format("Failed query {0} with stack trace {1} ", strSQLStatement, ex), "GetData");
        }

1 个答案:

答案 0 :(得分:3)

您的连接正在添加到连接池中,默认情况下此功能处于启用状态,因此每当连接关闭时,它都会添加到连接池中。您可以通过连接字符串参数Pooling=false或静态方法MySqlConnection.ClearPool(connection)MySqlConnection.ClearAllPools()解决此问题...

来自Official Documentation

  

Connector / Net支持连接池,以便在数据库密集型应用程序中获得更好的性能和可伸缩性。默认情况下启用此选项。您可以使用连接字符串选项Pooling,Connection Reset,Connection Lifetime,Cache Server Properties,Max Pool Size和Min Pool Size来关闭它或调整其性能特征。

     

当客户端处理MySqlConnection时,连接池的工作原理是保持与服务器的本机连接。随后,如果打开一个新的MySqlConnection对象,它将从连接池创建,而不是创建新的本机连接。这样可以提高性能。