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

Стас Сергеевич

  • Захожу иногда
  • 68
  • 0 / 0
Добрый день!

Помогите пожалуйста разобраться - вконец запутался - в иерархии: матерьял-товар-категории-пункты меню-меню-модули... По типу:
модуль(ссылки и адреса не имеет)-на нем размещается меню(адрес есть?)- в нем размещаются пункты меню(адрес есть?) (в пункт меню могут быть вложены еще пункты меню) - в нем размещаются категории (адрес в интернете есть?) - в нем могут размещаться еще несколько вложенных категорий(адрес в интернете..?) - в ней размещаются товары (есть адреса в интернете) Материалы (есть адрес в интернете) размещаются в пункте меню....

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

Возможно это элементарно - тем проще возможно это объяснить.. Спасибо
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
Любое представление(товар, материал, категория) имеет адрес (URL) вне зависимости от того есть на это представление пункт меню или нет.
Модули отдельного своего адреса не имеют, но индексируются, т.к. встроены в страницу представления, а страница индексируется целиком, на ней могут располагаться множество модулей (модуль меню, модуль категорий и пр.), помимо содержания представления
Если ваш товар находится в нескольких категориях, - значит одно и тоже содержание дублируется по нескольким адресам. В таких случаях используют тег canonical с ссылкой на адрес канонической страницы, которая говорит поисковикам какой адрес более предпочтительный.
*

Стас Сергеевич

  • Захожу иногда
  • 68
  • 0 / 0
Любое представление(товар, материал, категория) имеет адрес (URL) вне зависимости от того есть на это представление пункт меню или нет.
Модули отдельного своего адреса не имеют, но индексируются, т.к. встроены в страницу представления, а страница индексируется целиком, на ней могут располагаться множество модулей (модуль меню, модуль категорий и пр.), помимо содержания представления
Если ваш товар находится в нескольких категориях, - значит одно и тоже содержание дублируется по нескольким адресам. В таких случаях используют тег canonical с ссылкой на адрес канонической страницы, которая говорит поисковикам какой адрес более предпочтительный.
я правильно понял - все эти адреса лучше не менять - так как они уже были проиндексированы, а если меняешь название, нужно делать редирект 301 на старое?
*

Litop

  • Захожу иногда
  • 52
  • 4 / 0
  • Joomla не использую! В Virtuemart не шарю!
я правильно понял - все эти адреса лучше не менять - так как они уже были проиндексированы, а если меняешь название, нужно делать редирект 301 на старое?
Да правильно. А вот с дублями придётся бороться так как поисковики этого не любят. Joomla этим очень сильно грешит
*

Стас Сергеевич

  • Захожу иногда
  • 68
  • 0 / 0
Да правильно. А вот с дублями придётся бороться так как поисковики этого не любят. Joomla этим очень сильно грешит
я установил плагин, который убирает дубли автоматически
а скажите этот редирект 301 ставится на время пока не проиндексируется, а потом можно убирать? или убирать нельзя..
*

Litop

  • Захожу иногда
  • 52
  • 4 / 0
  • Joomla не использую! В Virtuemart не шарю!
я установил плагин, который убирает дубли автоматически
а скажите этот редирект 301 ставится на время пока не проиндексируется, а потом можно убирать? или убирать нельзя..

Устанавливая редирект 301 вы указываете поисковому боту, что перенаправленные постоянное. И страница на которую он ведет является канонической. Ели вы хотите временный ставьте 302
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
а скажите этот редирект 301 ставится на время пока не проиндексируется, а потом можно убирать? или убирать нельзя..
Когда старые адреса выпадут из выдачи, редирект можно убрать. Главное чтобы внешних или внутренних ссылок не было на старые адреса.
*

Стас Сергеевич

  • Захожу иногда
  • 68
  • 0 / 0
И еще вопрос сюда же, если я меняю свои прежние ошибки в алиясах - скажем korzina2 на более логичное и правильный алиас korzina - что мне нужно сделать - поставить редирект 301, чтобы вес который возможно был приобретен за это время передался на новое название или ничего не поменялось?

Подскажите еще по иерархии пожалуйста. Понимаю что элементарно (для тех кто разобрался), но я запутался
(товары, категории, пункты меню, меню, модуль)
« Последнее редактирование: 15.10.2016, 15:55:57 от Стас Сергеевич »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Joomla! 3.9.21 Невозможно создать пункт меню

Автор edvalitto

Ответов: 1
Просмотров: 1250
Последний ответ 26.03.2025, 19:26:30
от azm1n
Разные меню для мобильной и для ПК версии сайта

Автор jimka

Ответов: 7
Просмотров: 1465
Последний ответ 24.03.2025, 20:03:01
от R31rus
Проблема с меню

Автор denis_4

Ответов: 6
Просмотров: 1637
Последний ответ 07.08.2024, 14:00:43
от denis_4
Непонятная проблема с меню

Автор THE KILLERS

Ответов: 2
Просмотров: 7164
Последний ответ 25.07.2024, 16:07:39
от THE KILLERS
Один пункт меню думает что он главный

Автор DamaVbubi

Ответов: 4
Просмотров: 1172
Последний ответ 13.02.2024, 19:49:10
от DamaVbubi