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

fs444

  • Осваиваюсь на форуме
  • 43
  • 0 / 0
Написал скрипт my_f.php
Код
<?php
   $nomer_razdela = '1';
   echo "<table border='1'>
      <tr>
     <td>
    <a href='http://domen.ru/index.php?option=com_content&view=article&id=774&nomer_razdela=1'>Раздел 1</a>
                    <a href='http://domen.ru/index.php?option=com_content&view=article&id=774&nomer_razdela=2'>Раздел 2</a>
                    <a href='http://domen.ru/index.php?option=com_content&view=article&id=774&nomer_razdela=3'>Раздел 3</a>
</td>
<td>";   

if ($_GET["nomer_razdela"] == '1')
echo "Выбран раздел 1";

if ($_GET["nomer_razdela"] == '2')
echo "Выбран раздел 2";

if ($_GET["nomer_razdela"] == '3')
echo "Выбран раздел 3";
   
echo " </td>
  </tr>
   </table>";
?>

Вставляю его в статью Joomla с помощью php_mod - в модуле записываю
Код
<?php
   include ("http://domen.ru/video_lekcii/my_f.php");
?>

По логике (по моей ;)) скрипт должен выводить слова "Выбран раздел 1" при нажатии на ссылку "Раздел 1", а для 2 и 3 раздела соответственно. Выводятся только ссылки, а "Выбран раздел 1" при нажатии на ссылку "Раздел 1" - не выводится. Почему? ^-^
*

fs444

  • Осваиваюсь на форуме
  • 43
  • 0 / 0
Re: не работает передача методом GET
« Ответ #1 : 03.01.2011, 14:58:28 »
Ну подкиньте мне мысли какие-нить! ;)
*

fs444

  • Осваиваюсь на форуме
  • 43
  • 0 / 0
Re: не работает передача методом GET
« Ответ #2 : 04.01.2011, 16:56:57 »
Ну что-то совсем тишина... ^-^
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
Re: не работает передача методом GET
« Ответ #3 : 04.01.2011, 17:19:51 »
А попробовать

Код
JRequest::getVar( 'nomer_razdela' )
*

fs444

  • Осваиваюсь на форуме
  • 43
  • 0 / 0
Re: не работает передача методом GET
« Ответ #4 : 04.01.2011, 19:04:34 »
Написал
Код
<?php
   $nomer_razdela = '1';
   echo "<table border='1'>
      <tr>
     <td>
    <a href='http://domen.ru/index.php?option=com_content&view=article&id=774&nomer_razdela=1'>Раздел 1</a> <a href='http://domen.ru/index.php?option=com_content&view=article&id=774&nomer_razdela=2'>Раздел 2</a> <a href='http://domen.ru/index.php?option=com_content&view=article&id=774&nomer_razdela=3'>Раздел 3</a>
</td>
<td>";   

if (JRequest::getVar('nomer_razdela'))
{
    $nomer_razdela = JRequest::getVar('nomer_razdela');
}
if ($nomer_razdela == 1)
{
  echo "Выбран раздел 1";
}
elseif ($nomer_razdela == 2)
{
  echo "Выбран раздел 2";
}
elseif ($nomer_razdela == 3)
{
  echo "Выбран раздел 3";

   
echo " </td>
  </tr>
   </table>";
?>
так почему-то даже ссылки не грузятся. Почему так?
*

fs444

  • Осваиваюсь на форуме
  • 43
  • 0 / 0
Re: не работает передача методом GET
« Ответ #5 : 05.01.2011, 23:25:57 »
Что интересно, когда php-скрипт прямо в модуль запихиваю, то все работает ^-^

Может, Joomla include как-то блокирует?
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
Re: не работает передача методом GET
« Ответ #6 : 05.01.2011, 23:34:57 »
Может, Joomla include как-то блокирует?
Да нет, не блокирует, из компонентов подключал сторонний php не один раз.

У Вас вопрос либо в том, откуда куда параметры передаются и на каком этапе теряются, либо TinyMCE код режет.

С php_mod не работал, вчера попробовал другой компонент, вроде бы позволяющий код в контент вставлять -
всё равно редактор туда свои mce_ напихал, хотя в настройках очистка кода отключена.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не работает страница XML выдает ошибку: This page contains the following errors

Автор vitaliywolf

Ответов: 20
Просмотров: 18821
Последний ответ 07.05.2020, 22:24:16
от sivers
Криво работает сайт и админ часть

Автор Odyssey

Ответов: 11
Просмотров: 2782
Последний ответ 10.02.2019, 06:13:39
от Odyssey
не работает главная без index.php

Автор Mary Poppins

Ответов: 11
Просмотров: 8863
Последний ответ 11.12.2018, 18:28:30
от all_zer
не работает стандартный поиск Joomla 1.5.23

Автор Andrew1110

Ответов: 34
Просмотров: 14117
Последний ответ 11.02.2018, 10:31:42
от altvvc
НЕ работает панель в адинке

Автор Alex102

Ответов: 0
Просмотров: 1496
Последний ответ 03.12.2017, 23:26:06
от Alex102