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

bfox

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
как запретить при регистрации вводить русские буквы в логин. Из-за этого глючат модули и компоненты...
*

Hansik

  • Захожу иногда
  • 95
  • 12 / 0
Надо делать две проверки.
Чью регистрацию юзаете? Joomla или JomSocial'a?
*

Hansik

  • Захожу иногда
  • 95
  • 12 / 0
Если юзаете регистрацию JomSocial, то сперва делаете правите проверку JavaScript'ом.
Ищите файл com_community/assets/validate-1.5.js (или validate-1.5.pack.js - это сжатая версия, по умолчанию юзаетеся она. Я переписал на несжатую)
Там ищите:
Код
                      if(jQuery(el).hasClass('validate-username')){

Моя функция проверки выгляди так:
Код
if(jQuery(el).hasClass('validate-username')){
   regex=/^([a-zA-Z](?:(?:(?:\w[\_]?)*)\w)+)([a-zA-Z0-9])$/i;
       isValid = regex.test(jQuery(el).val());
if(isValid == false){
this.setMessage(fieldName, '', 'CC INVALID RUSERNAME');
} else {
jQuery('#err' + fieldName + 'msg').hide();
jQuery('#err' + fieldName + 'msg').html('&nbsp');     
   //use AJAX to check the pages.
   if(jQuery('#usernamepass').val()!= jQuery(el).val()){
   isValid = cvalidate.ajaxValidateUserName(jQuery(el));
   }//end if
}
       }

Придеться еще переписать CC INVALID RUSERNAME.


Дальше надо делать проверку в ПХП коде. Тут я вам отвечу позже, надо будет дома искать старый файл и смотреть на новый.

*

bfox

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
спасибо жду ответа
*

Zombeee

  • Захожу иногда
  • 328
  • 55 / 3
хм, интересно... если не трудно, напишите, пожалуйста. какие конкретно модули и компоненты начинают глючить и каким именно образом.
*

steelcat

  • Захожу иногда
  • 118
  • 13 / 0
хм, интересно... если не трудно, напишите, пожалуйста. какие конкретно модули и компоненты начинают глючить и каким именно образом.
Присоединяюсь, сайт пока в разработке, не хотелосб бы сюрпризов после запусков.
*

vdr

  • Захожу иногда
  • 196
  • 17 / 0
  • Всё есть в тебе. Реализовывайся.
Вот и у меня вылезла эта проблема. Помогите решить.
Стоит sh404SEF и юзеров - саша и sasha он приводит к виду - sasha, ну и проблемы из-за этого, второй просто не может попасть к себе в профиль.

Как реализовать запрет логина на кириллице?

JS 1.6.290
Всё есть в тебе. Реализовывайся.
*

vdr

  • Захожу иногда
  • 196
  • 17 / 0
  • Всё есть в тебе. Реализовывайся.
в принципе работает как описано выше. Никаких изменений в PHP не добавлял. Занес только CC INVALID RUSERNAME в языковой файл и всё.
Спасибо.
+1
Всё есть в тебе. Реализовывайся.
*

steelcat

  • Захожу иногда
  • 118
  • 13 / 0
+1 Аналогично, поправил файл com_community/assets/validate-1.5.js. Спасибо.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как запретить просмотр профилей гостям?

Автор Сergei

Ответов: 0
Просмотров: 1295
Последний ответ 13.05.2013, 17:05:00
от Сergei
как запретить менять url профиля?

Автор apelsin

Ответов: 0
Просмотров: 1427
Последний ответ 21.09.2011, 08:21:54
от apelsin
JS 2.2.2 Как запретить пользователям менять URL профиля?

Автор sfedorm

Ответов: 2
Просмотров: 2097
Последний ответ 29.06.2011, 17:45:09
от Дядя