Соединитель MySQL — Entity Framework

У меня есть приложение, которое .NET подключается к серверной части MYSQL. Как на машине разработки, так и на сервере у меня установлен MySQL Connector 6.5.5, я использую структуру сущности.

Когда я запрашиваю базу данных на своем локальном компьютере и смотрю на сгенерированный SQL - запрос состоит из внутреннего соединения Select X, Y, Z, внутреннего соединения B, где C в (1,2,3).

Однако, когда я развертываю ту же самую систему на рабочем сервере, запрос полностью меняется на Select X, Y, Z, LEFT OUTER JOIN 1, LEFT OUTER JOIN 2, LEFT OUTER JOIN 3, где 1 = C или 2 = C или 3 = С.

Во-первых, я не могу понять, почему SQL не совпадает, учитывая, что на обеих машинах установлен один и тот же коннектор.

Во-вторых, вторая версия занимает 10 минут, а первая — 10 секунд. Как я могу настроить сервер на моей машине для разработки?

Спасибо!


person Oriental    schedule 29.04.2014    source источник


Ответы (1)


Лично по личному опыту я предлагаю вам проверить, есть ли другие соединения на сервере. В локальной среде вы уверены, что вы единственный, кто подключен к базе данных, в реальной среде вы подвергаетесь сканированию порта mysql, а также есть другой запрос от другого пользователя и так далее. Во-вторых, вы уверены, что у вас одна и та же версия базы данных mysql на обеих машинах? Может быть (я не уверен), что для разных версий mysql есть разные переводы оператора mysql.

Также вы можете попробовать создать процедуру для проверки удаленного подключения и локального подключения, чтобы понять, требуется ли больше времени для подключения к базе данных и так далее.

Сделайте несколько проверок, прежде чем сойти с ума.

person makemoney2010    schedule 29.04.2014
comment
Привет, база данных размещена на веб-сервере, обе среды в настоящее время подключаются к одной и той же активной базе данных. Он «локальный» при развертывании, поэтому именно локальный занимает больше времени. - person Oriental; 30.04.2014
comment
это действительно странно ...... так что это заняло больше времени, когда оно находится в локальной среде, а не там, где оно развернуто в Интернете, оно работает быстрее (извините за вопрос, но я итальянец, и я хочу быть уверенным в том, что вы имеете в виду ) - person makemoney2010; 30.04.2014
comment
Да. И машина разработки, и сервер подключаются к базе данных действующего сервера, поэтому среда разработки, удаленная от базы данных, работает намного быстрее. Причиной этого является формирование запроса, о котором я упоминал в своем вопросе. Мне просто нужно выяснить, почему MySQL Connector создает другой SQL при развертывании на сервере! - person Oriental; 30.04.2014
comment
взгляните здесь, кажется, точно такая же проблема; различная конфигурация между удаленным сервером и локальной машиной. stackoverflow.com/questions/21350599 / надеюсь поможет - person makemoney2010; 30.04.2014