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的主页上,他们写道你应该避免自己创建,打开和关闭连接对象,相反,你应该使用helper类,它应该更好地与connectionpooling一起工作。
我还没有测试过,但我只是读到:)
我们这边MySql Connector . net 6.6.5也存在这个问题。MySql Connector . net 6.8.3正在解决这个问题。
法布里斯