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

magic7tyle

  • Осваиваюсь на форуме
  • 37
  • 1 / 0
Добрый день! Просьба помочь в решении задачи.
Итак, что имеем: Joomla 2.5.6, база MySQL, всё это на Denwer.
Собственно вот кусок кода:
Код
<span class="cart-images">
<img src="<?php echo JURI::root(). $imgThumb; ?>">
</span>
Что известно на данном этапе:
$myNumber - известная переменная, равна значению "virtuemart_product_id"
$imgThumb - неизвестная переменная, в которую нужно положить данные в результате запроса
Что нужно сделать:
1) Из таблицы "rex_virtuemart_product_medias" получить значение ячейки "virtuemart_media_id", при этом значение ячейки "virtuemart_product_id" из этой таблицы ("rex_virtuemart_product_medias") должно совпадать с указаным значением "$myNumber" и значение ячейки "ordering" должно быть равно "1"
2) Из строки таблицы "rex_virtuemart_medias", в которой значение ячейки "virtuemart_media_id" равно значению определённому в пункте 1, взять значение ячейки "file_url_thumb" и установить его для переменной $imgThumb
« Последнее редактирование: 24.10.2012, 14:52:17 от magic7tyle »
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: SQL запрос в базу
« Ответ #1 : 24.10.2012, 07:25:19 »
вы хотите прямо в шаблоне вывода писать запрос по определенному полю и получать результат?
можно, но я понял с ваших слов структуру таблиц, проще сделать скрин пхпадмина и стрелочками указать связи, мне так девочки с округов делали, было понятно
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

magic7tyle

  • Осваиваюсь на форуме
  • 37
  • 1 / 0
Re: SQL запрос в базу
« Ответ #2 : 24.10.2012, 08:19:01 »
Вот скрин:

Вот PHP-файл в архиве в который нужно получить данные из базы. В нём блок кода с 47 по 75 строку, там комментариями (можно использовать поиск по фразе Comment777777) указаны места переменных.
« Последнее редактирование: 24.10.2012, 14:36:44 от magic7tyle »
*

magic7tyle

  • Осваиваюсь на форуме
  • 37
  • 1 / 0
Re: SQL запрос в базу
« Ответ #3 : 24.10.2012, 14:37:41 »
Всем спасибо за участие! Вопрос уже решил, оказывается забыл заэкранировать путь)))
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: [Решено] SQL запрос в базу
« Ответ #4 : 24.10.2012, 14:41:17 »
Всем спасибо за участие! Вопрос уже решил, оказывается забыл заэкранировать путь)))
классика жанра :)
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Расчёт стоимости товара в VirtueMart за периметр

Автор NIKOLY

Ответов: 0
Просмотров: 473
Последний ответ 04.07.2025, 09:18:31
от NIKOLY
VM 4 версии убрать кнопку и страницу подтверждения заказа?

Автор cntrl

Ответов: 1
Просмотров: 1988
Последний ответ 31.01.2024, 14:27:21
от cntrl
Как вывести ID товара в описании товара?

Автор Stasweb

Ответов: 8
Просмотров: 4517
Последний ответ 28.11.2022, 23:22:27
от Evgen Kulibin
Как вывести модуль в страницу VirtueMart?

Автор harddrop

Ответов: 11
Просмотров: 4868
Последний ответ 13.11.2022, 13:11:37
от Evgen Kulibin
После регистрации VM в письме нет данных из пользовательских полей

Автор Slava77

Ответов: 0
Просмотров: 2860
Последний ответ 10.07.2022, 04:04:23
от Slava77