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

Mitrich

  • Захожу иногда
  • 289
  • 524 / 13
  • Все можно. Но сначала учиться, учиться и учиться.
Задача :
позволить скрытие от индексации путем добавления параметра в вызов модуля

изначально имеем
mosLoadMosules('position',style)
требуется получить
mosLoadMosules('position',style,noindex)

для того чтобы получить стандартный вывод модуля заключенный в теги noindex
в шаблоне прописываем

<?php mosLoadModules('left',0,1); ?>

где:
0 - стандартный вывод модуля
1 - заключение модуля в теги noindex

если вам это не нужно то работают и прежние правила для вызова модуля
т.е. (например)
<?php mosLoadModules('left'); ?>
<?php mosLoadModules('left',-2); ?>

Но при использовании noindex хака
обязательно явное указание стиля вывода (по умолчанию 0)
т.е.
<?php mosLoadModules('left',0,1); ?>

Решение
Файл
includes/frontend.php
строку
    function mosLoadModules( $position='left', $style=0,) {
меняем на
    function mosLoadModules( $position='left', $style=0, $noindex=0 ) {

там же перед (после)
    $prepend = ($style == 1) ? "<td valign=\"top\">\n" : '';
    $postpend = ($style == 1) ? "</td>\n" : '';

дописываем
    $pre_prepend = ($noindex == 1) ? '<noindex>' : '';
    $post_postpend = ($noindex == 1) ? '</noindex>' : '';


там же
    echo $prepend;
меняем на
    echo $pre_prepend;
    echo $prepend;


там же
    echo $postpend;
меняем на
    echo $postpend;
    echo $post_postpend;



файл
mambots/content/mosloadposition.php

    mosLoadModules ( $position, $style);
меняем на
    mosLoadModules ( $position, $style, $noindex );
« Последнее редактирование: 11.12.2007, 22:31:26 от Mitrich »
*

nike-17

  • Захожу иногда
  • 131
  • 12 / 0
Хм...но ведь есть же соответствующий мамбот - зачем мудрить??
*

nike-17

  • Захожу иногда
  • 131
  • 12 / 0
 а вот и мамбот

[вложение удалено Администратором]
*

Mitrich

  • Захожу иногда
  • 289
  • 524 / 13
  • Все можно. Но сначала учиться, учиться и учиться.
Так бот же ВСЕ внешние ссылки скрывает от индексации
*

nike-17

  • Захожу иногда
  • 131
  • 12 / 0
хм ну и павильно..зачем комуто вес отдавать??Хотя немного подумав понял что  твой вариатн тоже очень полезен и не пересекается по сути с ботом
*

boston

  • Захожу иногда
  • 495
  • 222 / 3
Mitrich, проверь работу при использовании в mosloadposition.php, кажется не действует.

PS. Внёс хак в Joostina ;)
Самая новая Joostina 1.3.0.5 UTF-8 stable | О найденных ошибках сообщаем | Расширения Joostina
*

Mitrich

  • Захожу иногда
  • 289
  • 524 / 13
  • Все можно. Но сначала учиться, учиться и учиться.
Погляжу

Кинь в личку симптомы проблемы plz
*

4853

  • Захожу иногда
  • 170
  • 20 / 11
Б-р-р-р,Mitrich , а зачем так и к чему?
Может я чё не понимаю?
*

Mitrich

  • Захожу иногда
  • 289
  • 524 / 13
  • Все можно. Но сначала учиться, учиться и учиться.
Просто так
Игры разума  ;)
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
*

4853

  • Захожу иногда
  • 170
  • 20 / 11
А, эт нужное дело  ^-^
А то я думал, что если в индексе прописать:
<noindex>
<?php mosLoadModules ( 'left' ); ?>
</noindex>
эт уже неправильно.
Непонятно, народ борится за индексацию, а тут обратка, против такового ;D
*

Mitrich

  • Захожу иногда
  • 289
  • 524 / 13
  • Все можно. Но сначала учиться, учиться и учиться.
Цитировать
а может в шаблоне перед выводом модуля прописывать "ноуиндекс" правильнее?

В общем все граздо прозаичнее  ^-^
Заказчик сказал, что noindex должен реализовываться средствами движка

Еще и денег дал  ;D
*

SPasha

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
я видел бот который умело обрамляет ссылки ноиндексом и вставляет тег nofollow к тому же он может вообще через редирект позволяет переходить при нажатии на ссылки. Терпение просто уже ссылки самому обрамлять ноиндексами,  так же можно содержимое менять типа аменять автоматом :) удобно видел тут: http://www.4start.ru/nashi-raboty/seo-anonym-redirect-bot.html
*

Physicist

  • Глобальный модератор
  • 984
  • 194 / 0
  • Рябов Денис
Непонятно, народ борится за индексацию, а тут обратка, против такового ;D
Объясняю, зачем это может быть нужно. При раскрутке определенных страниц очень важно, чтобы на эти страницы были ссылки, но с них на другие страницы не было (это позволяет сделать PR максимально возможным). Как следствие, нужно заключать модули меню и пр. в <noindex>, но это должно делаться только на раскручиваемых страницах.
*

Ogirok1

  • Осваиваюсь на форуме
  • 16
  • 3 / 0
Подскажите, кто знает
куда вставить теги noindex для того, чтоб гугль не индексировал модули:
mod_vvisit_counter ,  mod_virtuemart_login , mod_vvisit_counter  ?

Исходные данные Joomla 1,5,22 , VirtueMart 1,8.
Большое Спасибоооо!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

noindex для ссылок на документы?

Автор Игарь

Ответов: 14
Просмотров: 1715
Последний ответ 15.09.2020, 16:57:17
от rsn
Исключить теги OG на страницах магазина

Автор AlexB

Ответов: 4
Просмотров: 1067
Последний ответ 15.05.2020, 14:46:20
от AlexB
Актуальны ли сейчас мета-теги?

Автор SmYk

Ответов: 6
Просмотров: 1778
Последний ответ 10.12.2017, 21:16:43
от Fess_N
Помощь с поиском только по Артикулу. Модуль поисковика от JShopping

Автор Zhanadil1509

Ответов: 3
Просмотров: 1179
Последний ответ 11.07.2017, 15:07:05
от Zhanadil1509
<noindex>

Автор dialit

Ответов: 1
Просмотров: 1083
Последний ответ 22.10.2016, 02:03:57
от ELLE