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

maxmudi

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Профиль пользователя
« : 21.11.2012, 16:07:59 »
Как сделать, чтоб при нажатии на имя переходило в профиль (index.php/component/virtuemart/user/) думаю она примерно так выглядит ?
*

maxmudi

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Re: Профиль пользователя
« Ответ #1 : 22.11.2012, 10:15:36 »
Неужели никто не знает? там то всего лишь поставить ссылку, только куда?
*

jouser

  • Захожу иногда
  • 124
  • 9 / 0
Re: Профиль пользователя
« Ответ #2 : 22.11.2012, 14:16:08 »
Какое имя? Где оно - это имя? С какой страницы? С модуля? Точнее скажи
*

maxmudi

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Re: Профиль пользователя
« Ответ #3 : 22.11.2012, 14:41:02 »
Спойлер
[свернуть]
Регестрируешься, сверху появляется имя, как сделать, чтобы это самое имя было ссылкой на профиль?
*

jouser

  • Захожу иногда
  • 124
  • 9 / 0
Re: Профиль пользователя
« Ответ #4 : 22.11.2012, 14:54:37 »
это стандартный модуль авторизации или сторонний?
*

maxmudi

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Re: Профиль пользователя
« Ответ #5 : 22.11.2012, 15:04:23 »
Если честно я не могу понять :) Тут часть от стандартного, часть от К2
*

maxmudi

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Re: Профиль пользователя
« Ответ #6 : 22.11.2012, 15:13:56 »
Мне нужна ссылка вот сюда (index.php/component/virtuemart/user/) но я  не знаю куда вставить

*

jouser

  • Захожу иногда
  • 124
  • 9 / 0
Re: Профиль пользователя
« Ответ #7 : 22.11.2012, 15:20:23 »
просто если это стандартный, то нужно поменять пару строк в файле /modules/mod_login/tmpl/default.php
вместо
<?php if ($params->get('greeting')) : ?>
   <div class="login-greeting">
   <?php if($params->get('name') == 0) : {
      echo JText::sprintf('MOD_LOGIN_HINAME', htmlspecialchars($user->get('name')));
   } else : {
      echo JText::sprintf('MOD_LOGIN_HINAME', htmlspecialchars($user->get('username')));
   } endif; ?>
   </div>
<?php endif; ?>

вставить
<?php if ($params->get('greeting')) : ?>
   <div class="login-greeting">
   <?php if($params->get('name') == 0) : {
      echo "<a href='index.php/component/virtuemart/user/'>".JText::sprintf('MOD_LOGIN_HINAME', htmlspecialchars($user->get('name')))."</a>";
   } else : {
      echo "<a href='index.php/component/virtuemart/user/'>".JText::sprintf('MOD_LOGIN_HINAME', htmlspecialchars($user->get('username')))."</a>";
   } endif; ?>
   </div>
<?php endif; ?>


А вот если это сторонний модуль - тут надо смотреть
*

jouser

  • Захожу иногда
  • 124
  • 9 / 0
Re: Профиль пользователя
« Ответ #8 : 22.11.2012, 15:23:25 »
вообще включи лучше чпу
*

maxmudi

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Re: Профиль пользователя
« Ответ #9 : 22.11.2012, 15:53:11 »
Неа, к сожалению ни чего не вышло
*

jouser

  • Захожу иногда
  • 124
  • 9 / 0
Re: Профиль пользователя
« Ответ #10 : 22.11.2012, 16:09:35 »
значит сторонний модуль - тут ничего сложного ищи его в папке modules по названию. Там есть папка tmpl в ней файл default.php вот там и надо править. Только что б не накосячить скопируй файл default.php в директорию /templates/твой_шаблон/html/название_папки_модуля/default.php и там правь
*

maxmudi

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Re: Профиль пользователя
« Ответ #11 : 22.11.2012, 17:11:57 »
Спасибо, все получилось!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ошибка "vmError: Имя пользователя занято" при попытке сохранить настройки магазина

Автор Cueball

Ответов: 7
Просмотров: 6210
Последний ответ 16.05.2020, 17:05:15
от d0ublezer0
JUser: :_load: Не удалось загрузить пользователя с ID:

Автор Igoritaly

Ответов: 11
Просмотров: 2877
Последний ответ 25.07.2018, 15:37:31
от lexxbry
One Page Checkout не сохраняет в профиль пользователя измененные данные

Автор hels

Ответов: 1
Просмотров: 925
Последний ответ 01.06.2018, 11:56:19
от hels
В админке у пользователя нет товаров и категорий

Автор skillful

Ответов: 0
Просмотров: 879
Последний ответ 18.06.2017, 18:15:08
от skillful
Ошибка vmError: Имя пользователя занято

Автор klara7

Ответов: 1
Просмотров: 1039
Последний ответ 04.08.2014, 08:06:31
от klara7