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

Rebarun

  • Захожу иногда
  • 249
  • 1 / 2
Компонент энциклопедии
« : 31.03.2018, 09:14:17 »
каким компонентом? чтобы ссылки на статьи (материалы) из определенной категории выводились как-то так:
А
арбуз, абыр, алоэ ....
Б
букварь, бубен,..
....
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Компонент энциклопедии
« Ответ #1 : 31.03.2018, 09:53:58 »
переопределить вывод Списка статей и default_articles.php поковырять.
сортировка по алфавиту задается в меню, все что остается - выловить разницу в первых буквах между текущим и предыдущим заголовком и вывести промежуточный div c этой буквой.
*

Rebarun

  • Захожу иногда
  • 249
  • 1 / 2
Re: Компонент энциклопедии
« Ответ #2 : 31.03.2018, 10:14:16 »
переопределить вывод Списка статей и default_articles.php поковырять.
сортировка по алфавиту задается в меню, все что остается - выловить разницу в первых буквах между текущим и предыдущим заголовком и вывести промежуточный div c этой буквой.
Нет конечно.
Это не вариант.
Очень муторно и не совсем понятно что выйдет.
Необходимо что то наподобие этого
http://sad-sevzap.ru/katalog
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Компонент энциклопедии
« Ответ #3 : 31.03.2018, 10:48:06 »
ну ок, ставьте отдельный компонент. вот там будет вариант из коробки.
а то, что там своих заморочек вагон вас, очевидно, не смущает.
ставьте ZOO или FlexiContent тогда, если для вас не вариант полчаса потратить на допил  ;D
*

Rebarun

  • Захожу иногда
  • 249
  • 1 / 2
Re: Компонент энциклопедии
« Ответ #4 : 31.03.2018, 11:27:16 »
ну ок, ставьте отдельный компонент. вот там будет вариант из коробки.
а то, что там своих заморочек вагон вас, очевидно, не смущает.
ставьте ZOO или FlexiContent тогда, если для вас не вариант полчаса потратить на допил  ;D

Ok
Можете помочь за полчаса решить задачу ( с оплатой)?
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Компонент энциклопедии
« Ответ #5 : 31.03.2018, 11:32:17 »
Ok
Можете помочь за полчаса решить задачу ( с оплатой)?
полчаса за заморочки явно не хватит

Для Zoo к примеру нашел такое решение http://jbzoo.ru/docs/filter-by-letter-jbzoo

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

Если статей на каждую букву не очень много - можно написать модуль, который AJAX запросом будет из базы выбирать и подгружать на страницу.

Но оба последних решения требуют знания js\php чтобы это писать, либо коммерческий вариант. Редко требуемый функционал, в коробке естественно его нет, а специализированные решения всегда затачиваются под проект
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Компонент энциклопедии
« Ответ #6 : 31.03.2018, 11:38:40 »
это все зависит уже от деталей.
то, что написано в первом посте никаких аяксов не требует и реализуется через правку макета списка статей.
просто ТС плавно в следующем примере уже бОльший функционал предоставил, с указателем сверху, а от моего варианта отмахнулся.
так что пусть определится сначала, чего ему все-таки хочется - просто списка статей с отбивкой по первой букве или алфавитного указателя сверху.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Компонент энциклопедии
« Ответ #7 : 31.03.2018, 11:47:04 »
это все зависит уже от деталей.
то, что написано в первом посте никаких аяксов не требует и реализуется через правку макета списка статей.

То есть ты предлагаешь на уровне шаблона проверять полученный массив всех статей на первую букву и отсеивать остальные? В принципе да, самый простой вариант. Модуль меню привязываем к этим пунктам и ставим позицию над контентом - будет алфавитный указатель типа )

просто ТС плавно в следующем примере уже бОльший функционал предоставил, с указателем сверху
Так а тут совмещаем с моим вариантом - делаем меню из 30 пунктов по буквам алфавита, в шаблоне вывода блога отлавливаем название пункта и делаем проверку по твоему варианту.
Можно сделать отдельный шаблон вывода именно для алфавитного указателя с твоим условием. Будет дешево и сердито
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Компонент энциклопедии
« Ответ #8 : 31.03.2018, 11:49:05 »
beliyadm, смотри первый пост. там нет никакого отсеивания, а чисто отбивка между статьями в виде буквы...
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Компонент энциклопедии
« Ответ #9 : 31.03.2018, 11:51:43 »
beliyadm, смотри первый пост. там нет никакого отсеивания, а чисто отбивка по буквам.
не понял
на входе в шаблон к примеру блога blog.php приходит весь массив материалов выбранной в меню категории (все буквы). А уж из этого массива мы по заголовку проверяем первую букву на название пункта меню, совпадения первой буквы показываем, остальные отсеиваем.
Чтобы сделать доп. настройку в пункте меню (явно указать какую именно букву показывать) придется хакать модель, может полететь при обновлении
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Компонент энциклопедии
« Ответ #10 : 31.03.2018, 11:56:43 »
блин да откуда ты взял вообще доп пункт с буквами? какое "остальные отсеиваем". откуда?
в первом посте что ты видишь?
СПИСОК. Тупо список, ВСЕХ СТАТЕЙ. просто они красиво сгруппированы.
остальное ты сам додумал, я написал решения для задачи, описанной в первом посте.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Компонент энциклопедии
« Ответ #11 : 31.03.2018, 12:06:00 »
аааа, теперь понял, извини
изначально ТС хотел группировку по первой букве, потом захотел тупо алфавитный указатель, я собственно на это решение и предлагал варианты
первый вариант конечно достаточно прост на уровне шаблона и все
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Компонент энциклопедии
« Ответ #12 : 31.03.2018, 12:11:45 »
ну слава матрице!  ;D
вот в том и вопрос, чего же все-таки хочет ТС: дешево и сердито или же с наворотами.
соответственно, решения будут разные.
*

Rebarun

  • Захожу иногда
  • 249
  • 1 / 2
Re: Компонент энциклопедии
« Ответ #13 : 31.03.2018, 14:10:40 »
это все зависит уже от деталей.
то, что написано в первом посте никаких аяксов не требует и реализуется через правку макета списка статей.
просто ТС плавно в следующем примере уже бОльший функционал предоставил, с указателем сверху, а от моего варианта отмахнулся.
так что пусть определится сначала, чего ему все-таки хочется - просто списка статей с отбивкой по первой букве или алфавитного указателя сверху.

Указан конкретный пример того что необходимо :-)
http://sad-sevzap.ru/katalog
Что то наподобие энциклопедии ... так что "пол часа заморочек" явно не прокатят :-)
*

Rebarun

  • Захожу иногда
  • 249
  • 1 / 2
Re: Компонент энциклопедии
« Ответ #14 : 31.03.2018, 14:12:45 »
ну слава матрице!  ;D
вот в том и вопрос, чего же все-таки хочет ТС: дешево и сердито или же с наворотами.
соответственно, решения будут разные.

Где Вы увидели желание дешевизны ?
Я просил примеры или предложение реализации!
Ну что за люди !
Просто поговорить хотите ? Мне не хочется если у Вас нет конкретного решения!
Спасибо!
*

Rebarun

  • Захожу иногда
  • 249
  • 1 / 2
Re: Компонент энциклопедии
« Ответ #15 : 31.03.2018, 14:24:55 »
полчаса за заморочки явно не хватит

Для Zoo к примеру нашел такое решение http://jbzoo.ru/docs/filter-by-letter-jbzoo

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

Если статей на каждую букву не очень много - можно написать модуль, который AJAX запросом будет из базы выбирать и подгружать на страницу.

Но оба последних решения требуют знания js\php чтобы это писать, либо коммерческий вариант. Редко требуемый функционал, в коробке естественно его нет, а специализированные решения всегда затачиваются под проект

Коммерческое решение устроит.
Можете озвучить сроки и цены?
Можно в личку.
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Компонент энциклопедии
« Ответ #16 : 31.03.2018, 15:36:12 »
Ну что за люди !
что с вами не так?
дешево и сердито - это решение для вашего первого поста.
без интерактивного алфавитного указателя.
что вас коробит? не нравятся дешевые решения?  ;D
вы не можете нормально описать, ЧТО КОНКРЕТНО вам нужно, а обижаетесь почему-то на меня, который из вас это вытягивает клещами!
ваш первый пост и то, что вы дальше в примере привели - это две большие разницы. для первого поста цена вопроса - 500-800 рублей.
для полноценного интерактивного алфавитного указателя - уже значительно больше (или требует отдельного компонента) и требует доп. уточнений, в части "планируемое количество статей", как минимум.

*

Rebarun

  • Захожу иногда
  • 249
  • 1 / 2
Re: Компонент энциклопедии
« Ответ #17 : 31.03.2018, 17:51:06 »
что с вами не так?
дешево и сердито - это решение для вашего первого поста.
без интерактивного алфавитного указателя.
что вас коробит? не нравятся дешевые решения?  ;D
вы не можете нормально описать, ЧТО КОНКРЕТНО вам нужно, а обижаетесь почему-то на меня, который из вас это вытягивает клещами!
ваш первый пост и то, что вы дальше в примере привели - это две большие разницы. для первого поста цена вопроса - 500-800 рублей.
для полноценного интерактивного алфавитного указателя - уже значительно больше (или требует отдельного компонента) и требует доп. уточнений, в части "планируемое количество статей", как минимум.

Спасибо.
Решение должно быть эффективным в первую очередь а не дешевым или дорогим.
В Ваших услугах не нуждаюсь. ( даже не хочу пояснять почему)
Не тратье время на меня.
Не надо писать , прошу Вас!
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Компонент энциклопедии
« Ответ #19 : 01.04.2018, 15:05:57 »
Коммерческое решение устроит.
Можете озвучить сроки и цены?
Можно в личку.
можно и тут  (я не единственный разработчик на форуме)
Смотря что вы хотите, нужно от вас полноценное ТЗ.
К примеру: есть категория статьи, в ней 120 тыщ статей.
Нужна страница, где вверху алфавитный указатель, по клику на букву показываются статьи, заголовок которых начинаются на эту букву, если статей на букву больше N-цать показывается постраничная навигация.
Ну и тд. Описанный выше функционал могу реализовать в виде модуля, который на AJAX будет показывать статьи указанной в настройках категории с пагинацией (разбивкой на страницы).
Финансовая составляющая вопроса рублей 5 российских с подгонкой под ваш дизайн.
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Rebarun

  • Захожу иногда
  • 249
  • 1 / 2
Re: Компонент энциклопедии
« Ответ #20 : 01.04.2018, 19:26:50 »
можно и тут  (я не единственный разработчик на форуме)
Смотря что вы хотите, нужно от вас полноценное ТЗ.
К примеру: есть категория статьи, в ней 120 тыщ статей.
Нужна страница, где вверху алфавитный указатель, по клику на букву показываются статьи, заголовок которых начинаются на эту букву, если статей на букву больше N-цать показывается постраничная навигация.
Ну и тд. Описанный выше функционал могу реализовать в виде модуля, который на AJAX будет показывать статьи указанной в настройках категории с пагинацией (разбивкой на страницы).
Финансовая составляющая вопроса рублей 5 российских с подгонкой под ваш дизайн.

Как же приятно когда все четко, по теме и простите без "соплей"
Как грустно, что иногда как дебаты в президенты... (бестолковый галдеж и ничего конкретного)
Спасибо Вам !
Теперь по существу.
Примерно так как Вы свми определили:
--------------------------------------------------------
"есть категория статьи, в ней 120 тыщ статей.
Нужна страница, где вверху алфавитный указатель, по клику на букву показываются статьи, заголовок которых начинаются на эту букву, если статей на букву больше N-цать показывается постраничная навигация."
-------------------------------------------------------------------
С небольшим уточнением.
Страниц сейчас около 1 тыЩ, ну через год или два может будет 2 -3 тыЩ
И категорий из которых выводится инфа больше чем одна! И возможно по линку необходим вывод не конкретной статьи а нескольких и которые могут лежать в разных категориях ( это я уже теоритически придумываю)

Могу написать конкретное ТЗ если недостаточно этого http://sad-sevzap.ru/katalog
По сути этот сайт переносится на Joomla и нужен такой же функционал ( лучше если лучше :-) )
Еще раз спасибо за конкретику!
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Компонент энциклопедии
« Ответ #21 : 01.04.2018, 19:33:38 »
ну вот в следующий раз "без соплей" и пишите в первом посте, что вам нужно.
ещё и набрасывает, при это просит не писать в ответ. люблю таких, но странною любовью.  ;D
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Компонент энциклопедии
« Ответ #22 : 01.04.2018, 21:29:42 »
Цитировать
И возможно по линку необходим вывод не конкретной статьи а нескольких и которые могут лежать в разных категориях ( это я уже теоритически придумываю)
не очень понял
у нас в базе есть корневая категория, в ней статьи (без подкатегорий). Модуль показывает алфавит, по клику ищем в этой категории соответствия по первой букве.
Если хотите без пагинации - будет дешевле (в этом есть смысл, когда на каждую букву не более сотни совпадений, нет смысла лепить пагинацию)
Если есть корневая категория в которой есть подкатегории и материалы уже там - тоже возможно дописать опцию поиска, не смертельный момент.

Могу написать конкретное ТЗ если недостаточно этого http://sad-sevzap.ru/katalog
По сути этот сайт переносится на Joomla и нужен такой же функционал ( лучше если лучше :-) )
Да, я предлагаю аналогичную реализацию этого функционала, там тоже по клику на букву идет ajax запрос к серверу и возвращаются статьи.


« Последнее редактирование: 01.04.2018, 21:35:43 от beliyadm »
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Компонент энциклопедии
« Ответ #23 : 01.04.2018, 21:31:49 »
ну вот в следующий раз "без соплей" и пишите в первом посте, что вам нужно.
ещё и набрасывает, при это просит не писать в ответ. люблю таких, но странною любовью.  ;D
Слушай, ты будто первый день в бизнесе. Редко когда ТС может четко сформулировать задание, иногда в голове гуляет хотелка а выразить словами не могут. Вполне себе рабочий процесс выяснения деталей.
Минус, конечно, что по сути ТЗ уточняется бесплатно за счет форума...
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Компонент энциклопедии
« Ответ #24 : 01.04.2018, 21:43:25 »
Вполне себе рабочий процесс выяснения деталей.
Ты опять невнимателен. Почему ты мне это объясняешь, когда ТС назвал это
"Как же приятно когда все четко, по теме и простите без "соплей"
Как грустно, что иногда как дебаты в президенты... (бестолковый галдеж и ничего конкретного)"

Т.е. выяснение деталей = бестолковый галдеж с соплями и ничего конкретного, по его мнению.

Меня такие персонажи конкретно раздражают. Я выясняю его потребности а за это из меня флудера делают. Хочется поставить минус и послать в лес.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Компонент энциклопедии
« Ответ #25 : 01.04.2018, 21:49:53 »
Меня такие персонажи конкретно раздражают. Я выясняю его потребности а за это из меня флудера делают. Хочется поставить минус и послать в лес.
ну я тоже выяснял, если ты вдруг не заметил.
Да, не все всегда могут сразу сказать что они хотят. Тебя же никто не заставляет это делать )) Я много клиентов и денег поднимаю с форума именно детальным выяснением ТЗ и уходом в работу, когда понятно что готового решения нет.

В других сферах я такой же чайник и манагеры тех же СТО надо мной так же стебутся, как над чайником, когда я пригоняю авто и говорю "не едет блин" :)
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Компонент энциклопедии
« Ответ #26 : 01.04.2018, 21:51:49 »
Так меня не процесс выяснения напряг, а то, что по факту мне вместо спасибо выдали.
Т.е. я - плохой коп, а ты - хороший. А тс, видим, Д'Артаньян.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Компонент энциклопедии
« Ответ #27 : 01.04.2018, 21:56:52 »
Так меня не процесс выяснения напряг, а то, что по факту мне вместо спасибо выдали.
Т.е. я - плохой коп, а ты - хороший. А тс, видим, Д'Артаньян.
тут просто, я выдал по сути готовое ТЗ по выжимки обсуждения сухой остаток, ты нет
просто ты ленивый коп а я был достаточно пьян чтобы мне было не лень подбить сухой остаток и все
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Компонент энциклопедии
« Ответ #28 : 01.04.2018, 21:59:51 »
дык я бы и не взялся за развернутый вариант, тк не программер.
меня раздражает, что тс в роли свина под дубом. ему ТЗ уточняют, а он ещё и обижается.
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Компонент энциклопедии
« Ответ #29 : 01.04.2018, 22:02:52 »
ну я взялся за развернутый вариант, потому что по сути ничего сложного там нет, писал такое не раз
ну а ты "понять и простить" :)
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Нужен компонент для отслеживания трафика для борьбы с роботами

Автор art22

Ответов: 7
Просмотров: 5667
Последний ответ 02.06.2025, 22:50:48
от art22
Компонент для Joomla 4 Менеджер Мета Тегов

Автор azm1n

Ответов: 2
Просмотров: 1198
Последний ответ 09.05.2025, 11:30:21
от azm1n
Посоветуйте компонент для базы студентов

Автор Mick_20

Ответов: 1
Просмотров: 1494
Последний ответ 21.02.2025, 12:56:34
от NewUsers
Нужна рабочая связка: CMS <> компонент ИМ <> 1С <> API почта, сдэк, BoxBerry

Автор dss

Ответов: 2
Просмотров: 4922
Последний ответ 11.08.2023, 00:40:51
от Sulpher
Компонент для вывода семинаров

Автор gantelay

Ответов: 11
Просмотров: 5166
Последний ответ 04.07.2023, 13:40:26
от vovchikku