Проблема меню Joomla 1.6 в mysql (время выполнения <10 минут) - PullRequest
0 голосов
/ 18 мая 2011

Я обнаружил, что код внизу выполняется более 10 минут на моем сервере. Сам сервер достаточно хорош, и я не могу найти подходящего объяснения этому. Я использую Joomla 1.6.3, данные переносятся из Joomla 1.5.23 с использованием jUpgrade, а версия клиента MySQL - 5.1.45.

SELECT a.*,COUNT(DISTINCT m1.id) AS count_published,COUNT(DISTINCT m2.id) AS count_unpublished,COUNT(DISTINCT m3.id) AS count_trashed
FROM `j16_menu_types` AS a
LEFT JOIN `j16_menu` AS m1 ON m1.menutype = a.menutype AND m1.published = 1
LEFT JOIN `j16_menu` AS m2 ON m2.menutype = a.menutype AND m2.published = 0
LEFT JOIN `j16_menu` AS m3 ON m3.menutype = a.menutype AND m3.published = -2
GROUP BY a.id
ORDER BY a.id asc;

Я был бы очень рад, если бы кто-нибудь мог мне помочь, потому что у меня большие проблемы:)

P.s. Я скачал БД и проверил его на своем компьютере - все то же самое, время выполнения ужасно. Есть ли способ решить эту проблему? Или, может быть, удалить эту часть SQL без значительных изменений в администрации Joomla? Ну, на моем компьютере это было сделано довольно быстро, но результат все еще далек от того, который удовлетворил бы меня. enter image description here

EDIT Ну, я нашел сообщение об ошибке этой проблемы. http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemEdit&tracker_item_id=24868

И решение:

CREATE INDEX idx_menu_published ON j16_menu (published);

Однако я не уверен, как это повлияет на администрацию. Есть кто-то, кто мог бы кратко рассказать, как работает эта часть, и мне следует отредактировать код ядра Joomla или просто использовать приведенный выше код на MySQL один раз. Мне интересно, должен ли я индексировать таблицу каждый раз, когда редактирую меню.

1 Ответ

1 голос
/ 18 мая 2011

Индекс базы данных / таблицы - это всего лишь желтые страницы, если вы не возражаете против сравнения. Обновляется автоматически. Если этот индекс решает вашу проблему, вам больше ничего не нужно делать или делать снова. Вы тоже ничего не можете сломать - просто попробуйте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...