【问题标题】:asp.net MySql MySqlConnection - implement a connection pool or equivalentasp.net MySql MySqlConnection - 实现连接池或等效
【发布时间】:2013-03-04 19:32:51
【问题描述】:

这是我第一次在 ASP.Net 上使用 MySql。

与我经常使用的 MSSql 不同,我注意到使用 MySqlConnection 连接到数据库需要很长时间(我的意思是一两秒),

MySql.Data.MySqlClient.MySqlConnection connection = new MySqlConnection(DBConnectionString);

因此,我想知道如何实现一个连接池,或者任何可以存储一个连接对象 (MySqlConnection) 以在整个应用程序中使用的推荐结构。

是否有这样做的常见做法或任何其他建议?

这是我正在使用的代码 - 也许我在这里做错了什么?

MySql.Data.MySqlClient.MySqlConnection connection = new MySqlConnection(DBConnectionString);
MySqlDataAdapter adapter = new MySqlDataAdapter();
if (connection.State != ConnectionState.Open)
{
    try
    {
      connection.Open();
    }
    catch (MySqlException ex)
    {
     throw (ex);
      }
 }
  MySqlCommand cmd = new MySqlCommand("SELECT this FROM that", connection);

            DataSet ds = new DataSet();
            adapter.SelectCommand = cmd;
            adapter.Fill(ds);

            cmd.Connection.Close();

【问题讨论】:

  • 每次尝试都需要这么长时间吗?
  • 是的。这是否意味着它不应该那样?

标签: asp.net mysql


【解决方案1】:

According to the documentation 默认开启。此外,您正在使用连接字符串创建实例,这很好,因为它允许连接器立即利用池。因此,创建这些连接需要一两秒钟的事实几乎可以肯定与连接池无关,而与您在环境中提供 MySQL 的硬件更相关你在工作。

硬件这个词在这里非常宽泛,因为您可以处理从网络到磁盘和内存相关的所有问题。

请阅读文档 - 它确实向您展示了如何调整连接池 - 这可能会对您有所帮助。我做出这样的声明是因为您的问题没有向我们提供很多关于确切您如何使用此服务器或这些连接的信息。

【讨论】:

  • 我已更新上述问题以包含代码示例。也许我的连接有问题?
猜你喜欢
  • 2020-11-01
  • 1970-01-01
  • 2012-05-18
  • 1970-01-01
  • 2011-01-19
  • 1970-01-01
  • 2013-08-20
相关资源
最近更新 更多