【问题标题】:MySQL Adapter with C# Entity Framework - connection slow after idle带有 C# 实体框架的 MySQL 适配器 - 空闲后连接缓慢
【发布时间】:2012-06-20 18:59:17
【问题描述】:

我有一个带有实体框架的 .NET 4 程序和带有 MySQL.NET 适配器版本 6.5.4 的 MySQL。在我让程序空闲一段时间(比如 5 分钟)并尝试搜索数据库后,会有大约 5-6 秒的延迟。但在那之后,搜索将再次快速。

我对延迟进行了分析,发现实体框架在一定的空闲时间后试图重新建立与数据库的连接,从而导致了延迟。由于我的程序将仅在大约 20 台机器的小组中使用,我希望保持连接始终处于活动状态以加快查找速度。有没有办法做到这一点?如果没有,在这种情况下如何提高与 MySQL 的连接速度?

编辑(更新):

我在连接字符串中设置“Min Pool Size=1”后发现,即使长时间空闲也不会有任何延迟。它似乎解决了我的问题。

【问题讨论】:

    标签: .net mysql c#-4.0 entity-framework-4


    【解决方案1】:

    持久连接很少是一个好主意,但话虽如此......

    您可以在 ObjectContext 上执行此命令:

    yourObjectContext.ExecuteStoreCommand("SET SESSION wait_timeout=28800;");
    

    这应该告诉数据库保持连接打开 8 小时。

    【讨论】:

    • 感谢 EkoostikMartin。我还没有尝试你的解决方案。但发现如果我在连接字符串中设置“Min Pool Size=1”,那么问题就会消失。感谢您的帮助。
    • 这是一个非标准的连接字符串参数,我猜它是特定于您使用的驱动程序的。如果您曾经更改 MySQL 驱动程序,但这将不再起作用。
    • MySQL .NET 提供程序的连接字符串选项:dev.mysql.com/doc/refman/5.1/en/…
    猜你喜欢
    • 1970-01-01
    • 2012-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多