【问题标题】:MySQL Connector - Entity FrameworkMySQL 连接器 - 实体框架
【发布时间】:2014-04-29 23:10:40
【问题描述】:

我有一个连接到 MYSQL 后端的 .NET 应用程序。在我安装了 MySQL Connector 6.5.5 的开发机器和服务器上,我使用实体框架。

当我在本地机器上查询数据库并查看生成的 SQL 时 - 查询由 Select X, Y, Z inner join A inner join B Where C in (1,2,3) 组成。

但是,当我将完全相同的系统部署到实时服务器时,查询完全更改为 Select X, Y, Z, LEFT OUTER JOIN 1, LEFT OUTER JOIN 2, LEFT OUTER JOIN 3 Where 1 = C or 2 = C 或 3 = C。

首先 - 我不明白为什么 SQL 不匹配,因为两台机器都安装了相同的连接器。

其次,第二个版本需要 10 分钟,而第一个版本需要 10 秒。如何将服务器与我的开发机器对齐?

谢谢!

【问题讨论】:

    标签: mysql .net frameworks entity connector


    【解决方案1】:

    根据个人经验,我建议您检查服务器上是否还有其他连接。 在本地环境中,您确定您是唯一一个连接到实时环境中的数据库的人,您会暴露于 mysql 端口扫描,并且还有来自其他用户的其他查询等等。 第二个你确定你在两台机器上都有相同的mysql数据库版本吗?可能(我不确定)不同的mysql版本有不同的mysql语句翻译。

    您也可以尝试创建一个程序来检查远程连接和本地连接,以了解连接数据库是否需要更多时间等等。

    在发疯之前做一些检查。

    【讨论】:

    • 您好,数据库托管在 Web 服务器上,目前两个环境都连接到同一个实时数据库。部署时它是“本地”的,因此需要较长时间的是本地。
    • 这真的很奇怪......所以它在本地环境中花费了更多时间而不是在线部署它更快(对不起这个问题,但我是意大利人,我想确定你的意思)
    • 是的。开发机器和服务器都连接到实时服务器数据库,因此远离数据库的开发环境要快得多。原因是我在问题中提到的查询形式。我只需要弄清楚为什么 MySQL 连接器在部署到服务器时会产生不同的 SQL!
    • 看看这里似乎完全相同的问题;远程服务器和本地机器之间的不同配置。 stackoverflow.com/questions/21350599/…希望对你有帮助
    猜你喜欢
    • 2018-03-02
    • 2012-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-29
    • 1970-01-01
    • 1970-01-01
    • 2021-11-01
    相关资源
    最近更新 更多