버전 6.4.4 다음에 도달하기 위해 연결 풀을 사전로드 할 때MySQL의 닷넷 연결 풀 connection.Open() 매우 느린
MySqlConnection의 가장 기본적인 구현을 사용하여 다음 코드는 연결 당 2~5초 소요 내 연결 문자열에 "최소 풀 크기"가 구성되었습니다.
오랜 시간이 걸리는 이유, 해결 방법 또는 해결 방법에 대한 아이디어가 있습니까?
연결 문자열 : 작동해야하는 MySQL's homepage에서
<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();
}
}
}
}
나는 당신의 이야기에 대해 알고 있습니다. 그들의 제안은 자신의 MySqlConnection() 객체를 만들지 않고 대신 MySqlConnection (connectionString) 오버로드를 사용하는 것입니다. 풀링은 고유 한 연결 고리로 관리됩니다. – TexasViking
@TexasViking 커넥터가 아닌 부트 로크 인 서버/네트워크라고 생각하십니까? – aweis
나는 그것을 고려했다. 나는 그 이론을 테스트하기 위해 오늘 로컬에 설치된 mysql을 구할 계획이었다. 그러나 "사용자 지정"연결 문자열 풀링 설정을 제거하면 거의 즉시 연결을 만들 수 있습니다. – TexasViking