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

Lemonez

  • Захожу иногда
  • 225
  • 2 / 2
Всем привет!
Имеем блог с 500+ страниц, включена пагинация. Но, страница 2 имеет адрес с окончанием ?start=21, страница 3 имеет адрес с окончанием ?start=42, страница 4 имеет адрес с окончанием ?start=63 и т.д.
Откуда берутся цифры 21, 42, 63 в окончании ссылки? Почему бред такой? Опять же, судя по ругательствам Яндекс - периодически нумерация меняется (было ?start=21, стало ?start=31) и, соответственно, получаются битые ссылки в поиске. Отчего вдруг меняется нумерация?
Как исправить, чтобы было нормально и страница 2 имела адрес с окончанием ?start=2, а страница 3 имела адрес с окончанием ?start=3 ? И как убрать периодическую смену нумерации?
*

Vastriet

  • Захожу иногда
  • 405
  • 11 / 0
Re: Неправильная нумерация пагинации
« Ответ #1 : 14.04.2024, 10:50:35 »
выводите по 20 на страницу вот он и считает что вторая с 21 материала начинается
*

Lemonez

  • Захожу иногда
  • 225
  • 2 / 2
Re: Неправильная нумерация пагинации
« Ответ #2 : 14.04.2024, 10:58:44 »
выводите по 20 на страницу вот он и считает что вторая с 21 материала начинается
Ну я не могу же выводить по 1 шт. на страницу.
Как можно исправить?
*

Lemonez

  • Захожу иногда
  • 225
  • 2 / 2
Re: Неправильная нумерация пагинации
« Ответ #3 : 14.04.2024, 11:18:33 »
Указал выводить по 20, адреса стали лучше: ?start=20, ?start=40, ?start=60 и т.д.
Но, все равно, не логично, логично ?start=2, ?start=3, ?start=4  *ОХ-Х-Х*
*

Vastriet

  • Захожу иногда
  • 405
  • 11 / 0
Re: Неправильная нумерация пагинации
« Ответ #4 : 14.04.2024, 13:42:20 »
если старт то номер материала
а пейдж как раз 1,2,3
*

sivers

  • Живу я здесь
  • 2596
  • 360 / 0
Re: Неправильная нумерация пагинации
« Ответ #5 : 14.04.2024, 17:08:27 »
Указал выводить по 20, адреса стали лучше: ?start=20, ?start=40, ?start=60 и т.д.
Но, все равно, не логично, логично ?start=2, ?start=3, ?start=4  *ОХ-Х-Х*
Такая вот у Joomla логика. Приходится кастомно сефить, чтоб ссылки были вида /page-1, /page-2, ...

Можете попробовать вот этот плагин (есть вероятность, что заработает):
Спойлер
[свернуть]
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

Lemonez

  • Захожу иногда
  • 225
  • 2 / 2
Re: Неправильная нумерация пагинации
« Ответ #6 : 14.04.2024, 18:25:52 »
https://saweb.ru/extensions/plugins/plg-sw-router
Спасибо! Плагин работает, но тогда, не работает более важный плагин XT Perfect SEO Pagination, который добавляет в Title и Description название страниц пагинации. А в данном случае, мне важнее SEO и отсутствие дублей, чем ссылка вида page#.
Может еще у кого будут соображения, как сделать адреса пагинации вида page#, но чтобы не страдали функции XT Perfect SEO Pagination, которые работают при штатной пагинации?
*

Lemonez

  • Захожу иногда
  • 225
  • 2 / 2
Re: Неправильная нумерация пагинации
« Ответ #7 : 14.04.2024, 18:26:30 »
Приходится кастомно сефить
Это как?
*

sivers

  • Живу я здесь
  • 2596
  • 360 / 0
Re: Неправильная нумерация пагинации
« Ответ #8 : 14.04.2024, 19:07:16 »
Это как?
Писать свои правила для формирования урлов. Именно то, что демонстрирует плагин, который вы посмотрели. Если обладаете базовыми знаниями PHP, то можете посмотреть внутри как там сделано.
Чтоб плагин не мешал другому плагину - попробуйте сделать его последним (они вызываются системой в том же порядке). Там в настройках есть. Не гарантия, но может и сработать.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

Lemonez

  • Захожу иногда
  • 225
  • 2 / 2
Re: Неправильная нумерация пагинации
« Ответ #9 : 14.04.2024, 19:16:36 »
Не гарантия, но может и сработать.
Не помогло, да еще и дубли появились: одновременно существуют, и start#, и page#. Ладно, пусть будет start#, зато SEO и без дублей. Спасибо за помощь.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Адаптация мобильной пагинации

Автор web1

Ответов: 8
Просмотров: 2068
Последний ответ 19.07.2022, 10:09:54
от Olg