バージョン6.4.4:MySqlConnectionにの最も基本的な実装を使用してMySQLのネット接続プールconnection.Open()非常に遅い
到達するために接続プールをプリロードする場合、次のコードは、接続ごとに2〜5秒かかります私の接続文字列に "Min Pool Size"が設定されています。
長すぎる、修正する方法、または回避策がある理由は何ですか?
接続文字列: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