2013-08-14 5 views
0

У меня есть новая установка Joomla 3.0, которая работает на MySQL, и я использую Workbench. Я продолжаю работать очень, очень медленно. Однако, кажется, очень мало конкретных запросов. Что-то вродеMySQL Query Running Very Slow - Но только некоторые из них

SELECT * FROM joom_users 

работает очень, очень медленно и часто теряет соединение. Но UPDATE и INSERT отлично работают в этой таблице. Ive даже импортировал CSV-файл, и он быстро вспыхивал. Я уже бежал

EXPLAIN SELECT * FROM joom_users 

Не было ничего плохого в таблице. Все индексы есть, а сама таблица довольно маленькая (всего около 300 строк). Я считал, что подстановочный знак может отбрасывать его, поэтому я заменил подстановочный знак полями, и я попытался выполнить запрос из других таблиц с двумя полями (и, в некоторых случаях, без строк), и ТАКЖЕ работает медленно.

Кроме того, запросы на ALTER таблицы также работают медленно. Наконец, я также попробовал несколько машин с Workbench (один Win7, другой OSX), и они оба работают медленно, поэтому Ive устранил любые локальные проблемы, которые могут быть причиной этого.

Я озадачен этим. Помогите!

+0

Работает ли mysql на общем сервере? – akatakritos

+0

@ Jim Beam, вы не понимаете использования индексов или объяснения. SELECT * FROM joom_users не могут и не будут использовать индексы и должны выполнить полное сканирование таблицы, а затем вернуть 300 записей. Добавляет ли дополнительный столбец что-то вроде «Использование временной таблицы»? –

+1

Либо сервер делает что-то еще в это время (попробуйте прочитать медленный журнал), либо таблица нуждается в оптимизации после больших изменений. Во многих случаях MyISAM имеет скрытые блокировки. Попробуйте найти временные шаблоны (возможно, столкнуться с резервным копированием?). Я не знаю, поддерживала бы joomla InnoDB, но параллелизм запросов определенно лучше с InnoDB (как только у вас достаточно бара). – flaschenpost

ответ

0

Нет ничего неясно неправильного с запросом примера, который вы указали. Theres нет индексов, которые он мог бы использовать, но если бы он не был действительно большой таблицей, я бы ожидал, что это будет очень быстро.

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

Если у вас 300 активных пользователей вашей установки, может быть много конфликтов блокировок, особенно в MyISAM, который использует полные блокировки таблицы. Например, похоже, что таблица пользователей Joomla имеет номер lastVisitDate, который, если он обновляется на , каждые загрузки пользователя, может вызвать проблемы с блокировкой.