2013-08-20 4 views
0

У меня есть sql ... Это «SELECT». Я не могу показать это, но у него есть 5 союзов и много объединений (внутри и слева). Я также создал все необходимые индексы. На локальном компьютере для получения результатов требуется менее секунды (~ 0,5 с). Но на сервере он выполняется очень-очень долго. Базы данных на локальном компьютере и на сервере идентичны. Недавно я сбросил базу данных сервера и восстановил ее на локальной машине. Около 35 минут назад я запустил «EXPLAIN» этого sql, и он все еще работает. Также я вижу метку «Копирование в таблицу tmp» для объяснения в списке процессов. Все таблицы оптимизированы. Я тестировал системы MyISAM и InnoDB. Среднее значение нагрузки на сервер меньше 1, MySQL также не находится под нагрузкой.Выполнение запросов очень медленно

Возможно, это важно - сервер на облачном сервисе. У меня нет доступа к статистике облака - просто используйте сервер.

Что вы можете мне предложить?

+0

Объяснение занимает 35 минут? Google MySql Объясните медленно. –

+0

Если объяснение занимает 35 минут, у вас возникают серьезные проблемы с сервером или подключение к серверу. –

+0

Можете ли вы показать запрос и изменить tablenames/fields и т. Д.? – JsonStatham

ответ

0

Я узнал причину. Как я уже говорил (в комментариях), я делал EXPLAIN для каждого подзапроса и замечал некоторые отличия от тех же EXPLAIN на локальном компьютере (для 2 из 5 подзапросов). Решается путем создания дополнительных индексов. Различные машины - разные результаты. Я ожидал, что это будут некоторые разногласия, но я даже не мог сделать EXPLAIN. Это странно. Помогли только частичные EXPALIN.

Спасибо за все.

Смежные вопросы