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

OnePrg

  • Осваиваюсь на форуме
  • 49
  • 1 / 0
Две кнопки submit на форме
« : 06.01.2017, 12:37:59 »
Сделал вот такую форму



По идее пользователь сначала выбирает отдел и дату, нажимает кнопку "Получить", загружаются данные за этот день, он их редактирует (проставляет флажки где время занято), затем нажимает кнопку "Записать" и данные записываются в базу.

Кнопка "Запись" работает - данные в базу попадают. Если в адресную строку передать параметры, например

Код
index.php?option=com_drazs&view=marriages&drazs_id=1&date=2017-01-04

то данные в форму загружаются.

При нажатии на кнопку "Записать" программа попадает в функцию save модели. Подумал, а почему бы мне не передать по кнопке "Получить" в другую функцию в модели, например load. Сделал такую функцию, добавил кнопку "Получить", но по кнопке получить в load не заходит. Подскажите пожалуйста, что я не так сделал:

Код
<form class="form-validate" action="[имя сайта]/index.php/component/drazs/Marriages" method="post">


     <input name="task" value="Marriages.load" type="hidden">
     <input value="Отримати дані" type="submit">


    <input name="task" value="Marriages.save" type="hidden">
    <input value="Записати"  type="submit">
    <input name="a474543311af6e5bdd94b1613ca4beac" value="1" type="hidden">


<form>
« Последнее редактирование: 06.01.2017, 12:43:17 от OnePrg »
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Re: Две кнопки submit на форме
« Ответ #1 : 06.01.2017, 12:44:06 »
Цитировать
[имя сайта]/index.php/component/drazs/Marriages
Никогда так не делайте. Всегда используйте не-SEF ссылки.

Данные вообще не попадают в load() контроллера marriages?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Две кнопки submit на форме
« Ответ #2 : 06.01.2017, 12:45:04 »
У вас 2 input'а "task". Берется только последнее значение.

P.S.
Вот здесь вам уже дали очень правильный совет. Следуйте ему.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

OnePrg

  • Осваиваюсь на форуме
  • 49
  • 1 / 0
Re: Две кнопки submit на форме
« Ответ #3 : 06.01.2017, 12:51:12 »
Никогда так не делайте. Всегда используйте не-SEF ссылки.

Спасибо. учту, но только это не я а Joomla, это я уже с HTML скопировал, а в PHP это так

Код
<form action="<?php echo JRoute::_( 'index.php?view=Marriages' )?>" method="post" class="form-validate">


Данные вообще не попадают в load() контроллера marriages?

Точка останова туда не заходит. А на главной точке входа в компонент

Код
$task = JFactory::getApplication()->input->get( 'task' );
$controller->execute( $task );

task передаёт save, а не load
*

OnePrg

  • Осваиваюсь на форуме
  • 49
  • 1 / 0
Re: Две кнопки submit на форме
« Ответ #4 : 06.01.2017, 12:53:57 »
У вас 2 input'а "task". Берется только последнее значение.

P.S.
Вот здесь вам уже дали очень правильный совет. Следуйте ему.

Спасибо.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Менеджер контактов: Создание контакта - нет кнопки сохранить

Автор Slava77

Ответов: 1
Просмотров: 834
Последний ответ 23.05.2021, 01:41:25
от Slava77
WidgetKit 2 не работают кнопки Read More

Автор scheeroky

Ответов: 1
Просмотров: 1068
Последний ответ 13.10.2017, 00:08:50
от dm-krv
Как Joomla подключает обработчики на кнопки в админке?

Автор OnePrg

Ответов: 10
Просмотров: 2326
Последний ответ 28.12.2016, 11:46:54
от OnePrg
Не выводятся кнопки JL Like Pro в ZOO

Автор DeniTornado

Ответов: 5
Просмотров: 1510
Последний ответ 12.04.2016, 10:25:35
от DeniTornado
Какие соц. кнопки используете?

Автор Karyuudo

Ответов: 16
Просмотров: 1364
Последний ответ 24.01.2016, 10:00:54
от vipiusss