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

p.g.

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
<адрес сайта вырезан>

На главной странице есть блок новости. Там вся дата стала 5 августа. Хотя дата создания новостей у каждого своя, но почему то он берет не эти данные, а сегодняшнюю дату.

Где копать?   !
« Последнее редактирование: 06.08.2015, 21:05:29 от era »
*

p.g.

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
В модуль не влезали. Два дня назад все было ОК, и вдруг слетело. Непонятно, что повлияло! Модули может отключать и плагины поочередно?
*

p.g.

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
разумеется. Вот тут я так понимаю с похожей проблемой столкнулись, http://joomlaforum.ru/index.php?topic=128656.0
но те решения для joomla3 не подошли
*

p.g.

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
Самое интересное то, что сейчас восстановился акибой к версии, когда не было сбоя, а он все равно показывает это число. очень странно!
*

p.g.

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
                                    <div class="itemcdate">
                              <?php // News item create date
                                            $getdate = JHTML::_('date', $row->date, 'd\<b\r\/>-F');
                                            $getdate = explode('-', $getdate);
                                            echo $getdate[0].'<span>'.$getdate[1].'</span>';
                                        ?>
                                    </div>
                        <?php endif; ?>


Этот код формирует дату! Что с ним не так?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
А выше какой код идет? Что представляет собой $row?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

p.g.

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
Выше в коде его нет (((
Прикладываю модуль

<вырезано>mod_yjnf4.zip

Шаблон daily news
« Последнее редактирование: 09.08.2015, 00:01:01 от era »
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Почему вы не сказали, что правили код?
Вместо
Код: php-brief
$row->date
попробуйте вставить
Код: php-brief
$yj_get_items['item_date']
и отпишитесь.
А вообще, ваш модуль - редкостное г.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

p.g.

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
Модуль шаблонный.

Поставил:
$getdate = JHTML::_('date', $yj_get_items['item_date'], 'd\<b\r\/>-F');

Выдал ошибку:
DateTime::__construct(): Failed to parse time string (16 Апреля) at position 0 (1): Unexpected character
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Фу, тогда просто
Код: php-brief
$getdate=explode(' ',$yj_get_items['item_date']);
echo $getdate[0].'<span>'.$getdate[1].'</span>';
вместо
Код: php-brief
$getdate = JHTML::_('date', $row->date, 'd\<b\r\/>-F');
$getdate = explode('-', $getdate);
echo $getdate[0].'<span>'.$getdate[1].'</span>';
И никакой у вас не
Модуль шаблонный.
Откуда вы взяли его?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

p.g.

  • Осваиваюсь на форуме
  • 36
  • 0 / 0
Спасибо ) Помогло ) В личку кидай номер карты или телефон, отблагодарю )


P.S. Мне непонятно, почему до этого все работало, а в один день перестала корректно работать...
« Последнее редактирование: 05.08.2015, 23:40:17 от ELLE »
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Не стоит благодарности, сам недавно таким же был и помогал не из корыстных побуждений. Помогите кому-нибудь еще.
Не будь паразитом, сделай что-нибудь самостоятельно!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Helix 2.2 апгрейдить хотя бы в 3

Автор Alex_gs

Ответов: 0
Просмотров: 733
Последний ответ 03.11.2021, 22:02:08
от Alex_gs
Проблема с offcanvas для меню

Автор help-tend

Ответов: 14
Просмотров: 2956
Последний ответ 08.09.2021, 21:13:03
от gartes
Пример создания модуля с прикреплением файлов

Автор Zelyonkin

Ответов: 7
Просмотров: 1167
Последний ответ 02.08.2021, 17:04:15
от Zelyonkin
Проблема с стилями (файлами) CSS

Автор Leo1986

Ответов: 17
Просмотров: 1493
Последний ответ 23.04.2021, 09:13:44
от Leo1986
Проблема с версткой шаблона на bootstrap4

Автор bartes

Ответов: 5
Просмотров: 1666
Последний ответ 03.02.2021, 16:46:10
от sivers