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

Art_i

  • Захожу иногда
  • 143
  • 5 / 0
Здравствуйте.
У меня есть сайт на домене и на его поддомене.
site.ru
и
m.site.ru

Эти 2 сайта имеют одну БД.
Как правильно прописать безопасный путь? Если на одном из сайтов меняю, то вполне логично он меняется и на другом, так как БД одна на два сайта.
Сейчас путь такой, например:
/home/x/qazwsx/site.ru/public_html/vmfiles
Где править, чтобы путь был проще? Например:
/public_html/vmfiles

Спасибо.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
ничего не понял :) что такое "безопасный путь"?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Art_i

  • Захожу иногда
  • 143
  • 5 / 0
ничего не понял :) что такое "безопасный путь"?
По умолчанию VirtueMart создает папку vmfiles по адресу administrator/components/com_virtuemart/vmfiles и в сообщении об ошибке указывает путь, который нужно прописать в настройках Virtuemart->Настройки->Шаблоны в поле Безопасный путь.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
понятно. тема просто не в ветке ВМ, вот и не понял о чем вы
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Art_i

  • Захожу иногда
  • 143
  • 5 / 0
понятно. тема просто не в ветке ВМ, вот и не понял о чем вы
Точно. Как-то спутал случайно ветку...
Как ее перенести в VM ?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
ну уже понятно что к чему, думаю модераторы увидят - перенесут.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

yrygvay

  • Завсегдатай
  • 1293
  • 36 / 3
По умолчанию VirtueMart создает папку vmfiles по адресу administrator/components/com_virtuemart/vmfiles и в сообщении об ошибке указывает путь, который нужно прописать в настройках Virtuemart->Настройки->Шаблоны в поле Безопасный путь.

Не всегда VirtueMart правильно определяет абсолютный путь до папки, поэтому если после сохранения предложенного пути ошибка не исчезнет, то можно самостоятельно выяснить правильный путь.

Для этого создайте файл url.php и поместите его в папку administrator/components/com_virtuemart.
Код
<?php
echo 'Document root: '.$_SERVER['DOCUMENT_ROOT'].'<br>';
?>
запустив скрипт site.ru/administrator/components/com_virtuemart/url.php вы увидите правильный путь.

Разместить папку можно в любом другом месте, главное, чтобы на нее были выставлены права 755.
Смотрю....
*

Art_i

  • Захожу иногда
  • 143
  • 5 / 0
По умолчанию VirtueMart создает папку vmfiles по адресу administrator/components/com_virtuemart/vmfiles и в сообщении об ошибке указывает путь, который нужно прописать в настройках Virtuemart->Настройки->Шаблоны в поле Безопасный путь.

Не всегда VirtueMart правильно определяет абсолютный путь до папки, поэтому если после сохранения предложенного пути ошибка не исчезнет, то можно самостоятельно выяснить правильный путь.

Для этого создайте файл url.php и поместите его в папку administrator/components/com_virtuemart.
Код
<?php
echo 'Document root: '.$_SERVER['DOCUMENT_ROOT'].'<br>';
?>
запустив скрипт site.ru/administrator/components/com_virtuemart/url.php вы увидите правильный путь.

Разместить папку можно в любом другом месте, главное, чтобы на нее были выставлены права 755.

В этом все и дело. VM показывает правильный путь /home/x/qazwsx/site.ru/public_html/vmfiles
Как мне кажется, то надо найти где формируется и обрезать там /home/x/qazwsx/site.ru/public_html/vmfiles
Этим самым в БД будет записан один путь и два одинаковых сайта на разных доменах смогут его видеть.
*

Art_i

  • Захожу иногда
  • 143
  • 5 / 0
Подскажите, пожалуйста.
Менял в этих местах, но желаемого результата не достиг. Возможно неправильно делал.
Как я понимаю в этом куске кода формируется этот самый безопасный путь
administrator/components/com_virtuemart/models/config.php

Спойлер
[свернуть]

Потом здесь /administrator/components/com_virtuemart/views/config/tmpl/default_templates.php
Спойлер
[свернуть]
*

Art_i

  • Захожу иногда
  • 143
  • 5 / 0
Или все-таки это в конфиге делается?
*

Art_i

  • Захожу иногда
  • 143
  • 5 / 0
Все, решено !

Решение:
В коде ничего не изменял. Все проще оказалось.
Создал папку vmfiles на уровне сайтов, то есть
site.ru
m.site.ru
vmfiles
написал хостеру, и он дал к ней доступ.

Теперь я имею возможность с двух сайтов обращаться к нужной папке по такому адресу /home/x/qazwsx/vmfiles

Всем спасибо за внимание.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как изменить страницу заказ подтвержден?

Автор Grigorii

Ответов: 0
Просмотров: 2838
Последний ответ 11.08.2023, 18:46:58
от Grigorii
Стандартный поиск VM3 не ищет по описаниям продуктов

Автор hels

Ответов: 2
Просмотров: 815
Последний ответ 09.01.2020, 23:01:38
от hels
Изменить заголовок на странице поиска

Автор Dolphin4ik_1

Ответов: 1
Просмотров: 842
Последний ответ 20.11.2019, 22:52:41
от Socrat
Стандартный системый отзыв и дочерние товары

Автор limon142

Ответов: 0
Просмотров: 799
Последний ответ 09.08.2018, 08:57:21
от limon142
Как установить vmfiles?

Автор Angelalya

Ответов: 4
Просмотров: 804
Последний ответ 01.06.2018, 09:46:17
от Angelalya