MySQL . net连接池connection. open()很慢

本文关键字:很慢 open connection net 连接 MySQL | 更新日期: 2023-09-27 18:18:54

Version 6.4.4:

使用最基本的MySqlConnection实现,当预加载连接池以达到我的连接字符串中配置的"最小池大小"时,以下代码每个连接需要2-5秒。

知道为什么要花这么长时间,如何修复或解决方法吗?

连接字符串:

<add name="users" connectionString="server=192.168.1.2;User Id=dbuser;password=dbpassword;database=users;Pooling=true;Min Pool Size=10;Max Pool Size=50;Persist Security Info=True;" />

代码
private static void MySqlConnectionTester()
{
    string connectionString = ConfigurationManager.ConnectionStrings["users"].ConnectionString;
    using (var connection = new MySqlConnection(connectionString))
    {
        using (var command = connection.CreateCommand())
        {
            command.CommandText = "select * from users;";
            try
            {
                connection.Open(); // This line hangs until "Min Pool Size" is reached.
                using (var reader = command.ExecuteReader())
                {
                    while(reader.Read())
                    {
                        // Read results
                    }
                }
            }
            catch(Exception ex)
            {
                // Log exception
            }
            finally
            {
                connection.Close();
            }
        }
    }
}

MySQL . net连接池connection. open()很慢

在MySQL的主页上,他们写道你应该避免自己创建,打开和关闭连接对象,相反,你应该使用helper类,它应该更好地与connectionpooling一起工作。

我还没有测试过,但我只是读到:)

我们这边MySql Connector . net 6.6.5也存在这个问题。MySql Connector . net 6.8.3正在解决这个问题。

法布里斯