【问题标题】:Very slow opening MySQL connection using MySQL Connector for .net使用 MySQL Connector for .net 打开 MySQL 连接非常慢
【发布时间】:2012-09-12 17:41:55
【问题描述】:

我正在尝试解决使用 MySQL Connector for .net 打开连接时 MySQL 响应时间过长的问题。

我已经使用 --skip-name-resolve 在 Azure VM (Server 2008) 上安装了 MySQL 5.5,并且数据库用户帐户的主机限制使用 IP 地址。我在 Azure 上运行的 WCF 服务中使用最新的 MySQL 连接器 for .net(在美国东部的同一位置,我一直在使用试用订阅,没有关联集)。我在 WCF 服务中的连接字符串使用托管 MySQL 的 VM 的内部 IP 地址作为服务器参数值。我也有“pooling = true;Min Pool Size=2;”以防万一(我也试过不使用这些参数)。

跟踪 WCF 时,一旦服务运行和处理请求,查询响应时间非常好(即使每个查询结果都是唯一的,因此不会被缓存),而且我对 MySQL 的性能没有任何问题,只要它受到打击经常。

但我无法解决的最大问题是在大约 3 或 4 分钟没有调用数据库后,连接到 MySQL Open 所需的时间 .如果在几分钟内没有进行数据库调用,则需要 8 或 9 秒或更长时间才能再次打开连接。我包装了实际的“conn.open();”在调用之前和之后使用跟踪语句,这是我在几分钟不活动后一次又一次看到记录的行为。

顺便说一句,我也尝试过(并且仍在使用)连接处理的“使用”风格,以确保 MySQL 连接器正在管理连接池。

例如: 使用 (var conn = new MySqlConnection(Properties.Settings.Default.someConnectionString)) { ... statements ..}

我觉得我在这个问题上已经走到了尽头,所以任何建议都将不胜感激。

【问题讨论】:

  • 我使用 Enterprise Library Community 管理 MySQL Connector / .Net 我获得了快速的时间
  • 您好 Alberto,我已经进行了更多测试,只有当应用程序在 Azure 上运行并连接到 MySQL(也在 VM 或远程服务器上的 Azure 上)时才会出现缓慢。连接到 Azure 上的 SQL Server 速度很快。只是在我检查企业库之前检查一下,您是否在 Azure 上运行?似乎 Azure 或 MySQL 连接器正在删除连接池。

标签: c# mysql c#-4.0 azure mysql-connector


【解决方案1】:

我可以解释你的问题“在大约 3 或 4 分钟没有调用数据库后,连接到 MySQL Open 所需的时间。如果几分钟没有调用数据库再次打开连接需要 8 或 9 秒或更长时间。” 发生原因:

Windows Azure 网站使用热(活动)和冷(非活动)站点的概念,如果网站没有活动连接,则站点进入冷状态意味着主机 IIS 进程退出。当与该网站建立新连接时,需要几秒钟才能使该网站准备就绪并正常工作。虽然您将 MySQL 后端关联到该网站,但由于 IIS 主机进程需要一些时间才能启动,因此需要多几秒钟才能获得请求的服务。这就是在活动几分钟后响应时间更长的原因。

您可以查看以下演示文稿,了解有关 Windows Azure 热(活动)和冷(非活动)网站的更多详细信息: http://video.ch9.ms/teched/2012/na/AZR305.pptx

这次,我不确定也不知道如何才能使网站始终保持热门,即使转移到共享网站或根本不可能。我可以建议您将您的问题写到Windows Azure WebSites Forum,该团队的某个人将为您提供适当的答案。

【讨论】:

  • 感谢 AvkashChauhan 确认我不会发疯! :) 我还在他们的 VM for Azure 论坛上发布了这个问题。我本质上是一个 SQL Server 男孩,并且只使用 MySQL 来与客户端网站兼容。我希望现在能够将我们切换到 SQL Server。
  • @AnthonyC 你能找到解决方案吗,我面临一个非常相似的问题stackoverflow.com/questions/24706027/…
猜你喜欢
  • 2012-01-29
  • 2012-04-29
  • 2012-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-30
相关资源
最近更新 更多