Новости Joomla

Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях

Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях

👩‍💻 Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях. На старте его сайт на Joomla 3 вообще не смог обновиться на Joomla 5. Пришлось делать экспорт/импорт материалов. Проделав всё это он запустил-таки этот объём данных на Joomla 5. Тестовый скрипт грузил 200 материалов из этого объёма всего за 94 секунды ))) А главная страница с категориями грузилась 20 секунд. Добавив индекс для таблицы #__content

CREATE INDEX idx_catid_state ON #__content (catid, state);
он сократил время загрузки категорий до 1 секунды. Затем наш герой решил поковырять SQL-запрос в ArticleModel, который отвечает за выборку материалов. И решил заменить тип JOIN на STRAIGHT_JOIN для категорий.
// ->from($db->quoteName('#__content', 'a'))->from(    $db->quoteName('#__content', 'a')    . ' STRAIGHT_JOIN ' . $db->quoteName('#__categories', 'c')    . ' ON ' . $db->quoteName('c.id') . ' = ' . $db->quoteName('a.catid'))// ->join('LEFT', $db->quoteName('#__categories', 'c'), $db->quoteName('c.id') . ' = ' . $db->quoteName('a.catid'))
Что сократило загрузку 200 материалов из 150к с 94 секунд до 5. К слову сказать, боевой сайт на Joomla 3 крутится на 12CPU 64GB рамы. А все манипуляции с кодом он делает на базовом 1CPU 1GB сервере и замеры скорости даны именно для базового сервера. Но это всё в дискуссии, хотя в идеале должно вылиться в Pull Requests. Мы - Open Source сообщество, где никто никому ничего не должен. Джунгли. Но человек ищет пути оптимизации Joomla и предлагает решения. Если оказать поддержку и предложить помощь хотя бы с тестированием самых разнообразных сценариев, то возможно эти улучшения смогут войти в ядро. Пусть не быстро, пусть через несколько лет, пусть не все, но войдут. Достаточно предложить руку помощи и приложить немного усилий.
Дискуссию на GitHub можно почитать здесь.@joomlafeed#joomla #community #php

0 Пользователей и 1 Гость просматривают эту тему.
  • 4 Ответов
  • 1452 Просмотров
*

snowyowl

  • Новичок
  • 2
  • 0 / 0
Доброго времени суток всем! Поиском пользовался, ответа не нашёл, нид хелп пожалуйста.
Есть шаблон от Yootheme - Everest. Есть в нём стандартное меню, которое выводится в позицию "menu". Не устроило в нём то, что нет выпадающих подпунктов начиная со 2-го уровня. Точнее они отображаются, но не так, как мне надо, нужно чтобы выпадали вправо и вниз, а они отображаются в пределах того же столбца, что и подпункт, являющийся их родителем, просто обводятся рамочкой.

Решил поставить готовый модуль меню, чтобы решить эту проблему. Перепробовал несколько: VTEM, DJ, IceMegaMenu и у всех одна и та же проблема - всё меню целиком начинает отображаться, как подпункт корневого пункта с названием этого самого меню (если включить отображение названия в настройках модуля). Т.е, допустим, у меня есть пункты: Главная, О нас (с подпунктом "Игры с нашим участием", у которого в свою очередь ещё свои подпункты по годам: 2012, 2013, 2014, 2015, у которых тоже есть свои - это уже на последнем уровне). В итоге стандартной шаблонной менюхой имеем горизонтальное меню с двумя корневыми пунктами (естественно их больше, но я для примера): "Главная" и "О нас". При наведении мышки на "О нас" оно выпадает дальше.

Если же поставить любой сторонний модуль и опубликовать его в эту позицию, то все корневые пункты меню становятся в нём подпунктами одного родителя, у которого нет названия (если отображение заголовка в модуле отключено) или который называется так, как назван наш модуль, но зато выпадают уже как мне и нужно. Т.е. в итоге получаем, допустим: DJ Menu - один единственный пункт в позиции, а при наведении на него, уже появляются мои "Главная" и "О Нас", которые должны стоять на самом деле на его месте.

В общем, коряво, наверное, но объяснил, как смог. Помогите разобраться пожалуйста, где копать, уже всё, что можно, в настройках перелопатил, а в в правке кода шаблона не очень силён - только на самом примитивном уровне. Заранее благодарю за любую помощь!
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Причина банальна и проста: 2 и далее уровни просто не заверстаны в шаблоне, ибо, как показывает практика, пользователи редко идут дальше подменю 1 уровня. Пересмотрите структуру сайта.
*

zikkuratvk

  • Глобальный модератор
  • 4820
  • 345 / 2
  • Обслуживаем проекты - дорого.
не занимайтесь вредительством своему сайту, с помощью сторонних за частую корявых модулей.
Если вам необходимо выпадающее меню третьего уровня, что если честно сомнительно с точки зрения юзабельности, то добавьте стилей там совсем не много дописать то надо. Если не этого сделать, то я сомневаюсь, что сможете одолеть сторонние модули меню, так как там вообще мрак :-)
Хочется уникальное расширение? ===>>>> JoomLine - Разрабатываем расширения под заказ.
Использую хостинг TimeWeb и Reg
*

snowyowl

  • Новичок
  • 2
  • 0 / 0
Пересмотрите структуру сайта.
Хочется реализовать именно так, как задумал =)
добавьте стилей там совсем не много дописать то надо
Может слишком многого прошу, но можно меня прям носом ткнуть, что и куда дописать?
Все необходимые коды из шаблона, естественно, предоставлю.
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Тогда учите матчасть, в Everest используется less
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Двойное меню

Автор cirip

Ответов: 0
Просмотров: 1507
Последний ответ 05.11.2024, 23:19:21
от cirip
Пункт меню Текстовый разделитель ведет на главную страницу

Автор zahar_92

Ответов: 8
Просмотров: 4688
Последний ответ 27.07.2023, 13:37:17
от ei-dos
[РЕШЕНО]Скрыть пункт меню на мобильных устройствах

Автор lexxbry

Ответов: 16
Просмотров: 7423
Последний ответ 23.05.2023, 07:22:49
от geral
Цвет фона меню

Автор IhorPH

Ответов: 7
Просмотров: 3175
Последний ответ 21.03.2023, 11:47:29
от marksetter
OffCanvas меню Helix Ultimate добавить текст к иконке

Автор Andre100

Ответов: 2
Просмотров: 4160
Последний ответ 20.03.2023, 12:42:49
от Andre100