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

Solvedor

  • Захожу иногда
  • 376
  • 33 / 0
  • Масенький Йожик
До сегодняшнего дня все шло пучком. А с третьей категории началось. Стало пропадать одно из 3-х полей, выводимых в тизере. И не только в тизере, но и в описании позиции (Full View). Причем, при создании новой позиции в каталоге, значение поля (выпадающий список) заменялось другим.
Ладно, думал глюки. Решил заполнить следующую категорию. 2 позиции встали нормально, а вот третья опять словила глюк:


Вот что это за хрень может быть?

Платформа - J1.5.23, Zoo 2.4.9
« Последнее редактирование: 30.09.2011, 15:31:31 от Solvedor »
*

Solvedor

  • Захожу иногда
  • 376
  • 33 / 0
  • Масенький Йожик
В общем я так понял, что это ошибка записи в БД. Залез в нее и сравнил записи в итоге картина такая:

В нормальной позиции:
Код
<?xml version="1.0" encoding="utf-8"?>
<elements>
<select identifier="5ad60b09-6fed-4215-bc0f-7a549f114b3d">
  <option><![CDATA[menci]]></option>
</select>

а в ненормальной
Код
<?xml version="1.0" encoding="utf-8"?>
<elements>
<select identifier="5ad60b09-6fed-4215-bc0f-7a549f114b3d">
  <option/>
</select>

то есть почему-то исчезает открывающий тег option и содержимое контейнера. Что это может быть?
*

Solvedor

  • Захожу иногда
  • 376
  • 33 / 0
  • Масенький Йожик
Решено!
Путем перекура, мата и пинания кота, пришел к выводу, что Zoo не может определить, что ему в поле выводить. И оказался прав.
Выяснилось, что каждое значение элемента (выпадающего списка) надо вводить отдельно. То есть, создали значение "Производитель-1". Нажали кнопку сохранить. Снова открыли элемент, создали значение "Производитель-2".

В БД это выглядит так (таблица jos_zoo_search_index):


где
колонка 1 - item_id
колонка 2 - element_id
колонка 3 - value

так вот у меня в третьей колонке (название производителя) было аж 6 значений! есть с чего свихнуть с ума.

Лечится так: сносится данная таблица, затем удаляются эти элементы непосредственно в Zoo, а потом там же создаются по очереди, как описано выше. И всё!

ПС. Спасибо мне, что есть я у меня! Трезвый, выспавшийся и в рабочем задоре!  *DRINK*
*

Alexdoc76

  • Осваиваюсь на форуме
  • 45
  • 1 / 0
Решено!
Путем перекура, мата и пинания кота, пришел к выводу, что Zoo не может определить, что ему в поле выводить. И оказался прав.
Выяснилось, что каждое значение элемента (выпадающего списка) надо вводить отдельно. То есть, создали значение "Производитель-1". Нажали кнопку сохранить. Снова открыли элемент, создали значение "Производитель-2".

В БД это выглядит так (таблица jos_zoo_search_index):


где
колонка 1 - item_id
колонка 2 - element_id
колонка 3 - value

так вот у меня в третьей колонке (название производителя) было аж 6 значений! есть с чего свихнуть с ума.

Лечится так: сносится данная таблица, затем удаляются эти элементы непосредственно в Zoo, а потом там же создаются по очереди, как описано выше. И всё!

ПС. Спасибо мне, что есть я у меня! Трезвый, выспавшийся и в рабочем задоре!  *DRINK*

Спасибо тебе, что ты есть у тебя!
Мог бы ты подсказать, таблица zoo_search_index вообще очень нужна? Она у меня огромное место занимает. Если ты конечно, трезвый, выспавшийся и в рабочем задоре :)
Спасибо.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Дополнительное поле с редактором для категории. Zoo

Автор rch.sergeevich

Ответов: 1
Просмотров: 2828
Последний ответ 22.05.2022, 08:12:16
от arma
Вывод материала категории

Автор face2005

Ответов: 0
Просмотров: 3582
Последний ответ 28.09.2018, 18:26:52
от face2005
[Решено] Как в модуле ZOO Item вывести название и описание категории?

Автор frolov.ar

Ответов: 13
Просмотров: 6374
Последний ответ 01.04.2017, 13:29:52
от rivermc
URL нескольких страниц категории

Автор saschka

Ответов: 2
Просмотров: 2305
Последний ответ 08.02.2017, 13:45:36
от saschka
zoo, элемент блог - как вывести название поля, то которое задается при создании поля?

Автор klekovkinandrey

Ответов: 18
Просмотров: 2687
Последний ответ 19.01.2017, 00:11:19
от klekovkinandrey