Новости 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 Гость просматривают эту тему.
  • 16 Ответов
  • 2267 Просмотров
*

mystique

  • Захожу иногда
  • 169
  • 4 / 0
Есть сайт, содержащий статьи-обзоры мотоциклов, их ТТХ (характеристики) и документы по ним (сервис-мануалы, электрические схемы и т.д.) Хочется как-то объединить эту информацию. т.е. чтобы например при просмотре статьи-обзора мотоцикла можно было в один клик перейти на файловый архив по этому мотоциклу или на его ТТХ. И наоборот. Слабо представляется, как это можно сделать, т.к. ТТХ лежат в Mosets Tree, файловый архив на jDownloads, а обзоры в стандартных статьях. можно, конечно, руками проставить ссылочки на каждой из страниц. Но это убиться проще, т.к. материала много. Можно ли как-то автоматизировать процесс? Была мысль завязаться на keywords как-нибудь, но пока слабо представляю, как именно. Подскажите пожалуйста, подкиньте идейку, как это можно реализовать?.. С помощью чего?
« Последнее редактирование: 25.10.2010, 11:39:36 от mystique »
*

GDV

  • Завсегдатай
  • 1898
  • 201 / 5
Можно перелинковать либо разбивать один большой материал на главы.
Так же можно определенной модели мотоцикла создавать свою категорию и в ней уже публиковать весь материал по данной модели + использовать плагин, который показывает все материала с нужной категории в конце материала.
Можно так же использовать отдельное меню для каждой модели.
В общем вариантов много. Выбирайте какой больше нравится.
« Последнее редактирование: 25.10.2010, 10:50:55 от GDV »
Убедительная просьба не писать в ЛС. Для решения Ваших проблем есть форум.
*

Robinson

  • Захожу иногда
  • 442
  • 72 / 1
Может через взаимосвязанные меню?
*

SinBad

  • Завсегдатай
  • 1879
  • 187 / 0
  • Мнне 40 лет, мне 40 лет, ума так и не нажил!
Насколько много материала?
Может все таки легче перейти на один компонент каталога со всеми этими функциями.
Можно плагинами связать (самописными).
...Фет для них песни поёт. Фет не прикольный поэт - Фету никто не даёт.
*

mystique

  • Захожу иногда
  • 169
  • 4 / 0
Информации довольно много... Руками обрабатывать - тяжко. Кроме того проект некоммерческий. Делаю для себя лично, и на благо народа. ;)

Кроме того есть заморочки на тему мультикатегорийности. Например в той же файлопомойке сервис-мануал по конкретному мотоциклу должен принадлежать категории "Сервис-мануалы" и категории "этот самый, конкретный мотоцикл", чтобы найти его можно было как по модели, так и по назначению документа.

О едином каталоге думал. В принципе SobiPro бы подошел с его возможностью подцепки файлов и мультикатегорийности плюс возможность нескольких типов материала. Но он еже бета, сыроват, подглючивает... А у остальных не видел возможности ведения нескольких типов материала, подцепки файлов и картинок либо ведения нескольких типов материалов. Ну либо взаимосвязи между всем этим барахлом в удобоваримом виде.

Была мысль сделать это на com_content и модуле "похожие материалы", который по похожим ключевым словам (keywords) выводит список похожих статей. Тогда если грамотно расставить ключевые слова, то при заходе, например, в описание мотоцикла найдутся похожие статьи с ТТХ и файлами... Но просто "подобными" как-то не слишком красиво получается что ли...
*

mystique

  • Захожу иногда
  • 169
  • 4 / 0
А через взаимосвязанные меню - это как?
« Последнее редактирование: 25.10.2010, 11:36:39 от mystique »
*

GDV

  • Завсегдатай
  • 1898
  • 201 / 5
примерно как тут http://alliance-a.if.ua
в каждой модели свое меню
Убедительная просьба не писать в ЛС. Для решения Ваших проблем есть форум.
*

mystique

  • Захожу иногда
  • 169
  • 4 / 0
Ага! Спасибо. Дошло. Выглядит, конечно, красиво. Но это под каждую модель свою менюшку создавать. И руками ссылки расставлять. Это повеситься проще... ;( Только сейчас более 40 разных моделей. И планируется пополнение ощутимое силами нашего клуба. Народ по большей части не технический (в плане компьютеров). Так что текст вставить они могут. но ссылки проставлять по-любому мне и руками.

Может действительно ССК какая помочь сможет? Создать к статьям поле "ключевые слова" или воспользоваться уже имеющимся keywords и по ним имеющийся материал как-то автоматом подбирать по статьям сайта...
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
на самом деле это не избавит от технических проблем при модерировании сторонними людьми.
кто будет проверять кейворды на уникальность?
хотя где-то видел модуль для админа, который светит одинаковые сео-данные, но он для обычного контента.

кстати, посмотри в сторону form2content. это такой промежуточный вариант медлы обчным контентом и сторонним cck
*

fedya

  • Захожу иногда
  • 463
  • 50 / 1
примерно как тут http://alliance-a.if.ua
в каждой модели свое меню
по моему самое то...
четко разбить информацию на категории (т.е. эти пункты будут у всех моделей) а потом сиди да копируй эти пункты, попутно подправляя...и распихивая материалы в нужные разделы-категории...
при наличии 40-ка моделей — день работы не более
Вместо того, чтобы доказывать истинность своих положений и опровергать аргументацию оппонента, демагог может обращаться к приёму ad hominem — критиковать не аргументы, а личность оппонента, пытаясь убедить зрителей, что оппонент — плохой, недостойный, не разбирающийся в вопросе, пристрастный или лицемерный человек.
*

fedya

  • Захожу иногда
  • 463
  • 50 / 1
или есть менюшки которые автоматом формируются из категорий выбранного раздела...
ещё проще будет...
Вместо того, чтобы доказывать истинность своих положений и опровергать аргументацию оппонента, демагог может обращаться к приёму ad hominem — критиковать не аргументы, а личность оппонента, пытаясь убедить зрителей, что оппонент — плохой, недостойный, не разбирающийся в вопросе, пристрастный или лицемерный человек.
*

mystique

  • Захожу иногда
  • 169
  • 4 / 0
Эм... автоматически генерящиеся менюшки? А это как? Очень интересно!

Просто 40 моделей - это не 40 статей. На каждую модель от 1 до 5-7 обзоров, от 1 до 10 страниц с ТТХ (разные ТТХ по одной модели по годам выпуска, последствия модернизации) и до десятка различных файлов по этой модели. И это только начало. ;)))

Сейчас вот пошерстил имеющиеся возможности. Может попробовать что-то типа JSeBlod CCK или ему подобные... 3 типа контента. Статьи, ТТХ и файлы. И в каждом из них своя структура контента и поле с ключевыми словами. И напишу модуль, аналог стандартного "похожие статьи", который буду цеплять под контентом. И который будет выводить 3 списка. Контенты с такими же ключевыми словами из статей с типом контента "статьи", "ТТХ" и "файлы"... Или затея глючная с самого начала?
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
имхо, JSeBlod - не для мотециклистов, а для марсианов :)
посмотри zoo тогда уж. я сам-адепт FLEXIcontent - на нём можно подобное сделать, но что-то разработчики там какие-то пассивные в последнее время
*

GDV

  • Завсегдатай
  • 1898
  • 201 / 5
Создаешь одно меню с модулем меню. Потом их просто клонируешь и просто заменяешь в каждом конкретную статью.
А что бы не запутаться, делаешь по каждой модели свою категорию. При желании 40 моделей можно за пол дня распихать по менюшкам.
Я 13 моделей распихал за час (по 4 материала в модели).
Но если есть возможность обойтись другим путем, по попытайся по другому решить. В этом способе тоже есть один минус, это много менюшек будет.
Убедительная просьба не писать в ЛС. Для решения Ваших проблем есть форум.
*

fedya

  • Захожу иногда
  • 463
  • 50 / 1
может использовать меню в виде дерева?
там же и авто генерируемые менюшки :)
Вместо того, чтобы доказывать истинность своих положений и опровергать аргументацию оппонента, демагог может обращаться к приёму ad hominem — критиковать не аргументы, а личность оппонента, пытаясь убедить зрителей, что оппонент — плохой, недостойный, не разбирающийся в вопросе, пристрастный или лицемерный человек.
*

GDV

  • Завсегдатай
  • 1898
  • 201 / 5
Все таки я согласен с утверждением что для этого лучше использовать сск. Вариант с менюшками хорош при условии что моделей не много.

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

По быстрому сделал путем разбивки материала на страницы.
Убедительная просьба не писать в ЛС. Для решения Ваших проблем есть форум.
*

mystique

  • Захожу иногда
  • 169
  • 4 / 0
Понял. Большое спасибо за советы! Буду пробовать! ;)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Чем лучше всего делать резервные копии сайта?

Автор 7Azimuth

Ответов: 115
Просмотров: 59017
Последний ответ 29.11.2023, 14:41:12
от sivers
Joomla 1.5 как убрать кнопку редактировать материант с сайта

Автор andriy465

Ответов: 5
Просмотров: 4021
Последний ответ 12.11.2023, 23:37:03
от all_zer
Не могу распаковать jpa архив сайта Akeeba backup. ajax error

Автор smadkz

Ответов: 4
Просмотров: 1908
Последний ответ 26.12.2020, 15:15:15
от stendapuss
Версия сайта для слабовидящих

Автор nikos

Ответов: 22
Просмотров: 44412
Последний ответ 27.11.2020, 11:04:18
от chernobyl
Поиск статьи по url сайта в админке Joomla 1.5

Автор Tema

Ответов: 5
Просмотров: 2194
Последний ответ 14.08.2020, 07:16:44
от rsn