Новости 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 Ответов
  • 4585 Просмотров
*

sashgera

  • Захожу иногда
  • 113
  • 0 / 0
Здравствуйте
В настройках VM1 выбрано - Учётная запись не создаётся
Если покупатель делает заказ первый раз, то ему предлагается заполнить форму с контактной информацией (адрес, телефон и т.д). Если этому покупателю повторно сделать заказ, то форма форма не показывается (пропускается), а контактные данные берутся с предыдущего заполнения формы.
Если удалить из браузера куку, вот она - 75572475ed89f1e1de18f8ec91c0deb0, то форма снова отображается при оформлении заказа.
В одной из тем было такое решение - в конце кода файла checkout.thankyou.tpl.php добавить:
Код
<?php $sess->emptySession();?>
Но такое решение частично решает проблему. Если заполнить форму и нажать кнопку подтверждения, а потом вернуться, например чтобы изменить номер телефона, то форма снова не показывается.

Как сделать, чтобы форма была всегда каждый раз при оформлении заказа?
*

fsv

  • Moderator
  • 2782
  • 411 / 2
Попробуйте в конце файла checkout.thankyou.tpl.php добавить
Код
<?php $auth["user_id"] = 0; ?>
Не проверял и не копал глубоко. Но, вроде, для вывода формы регистрации идет проверка на наличие BT-адреса у покупателя, используя его $auth["user_id"] .
Также в \administrator\components\com_virtuemart\html\checkout.index.php
Спойлер
[свернуть]
замените на
Спойлер
[свернуть]
Веб-разработка: заказ. Только новая разработка.
*

sashgera

  • Захожу иногда
  • 113
  • 0 / 0
Не помогло, при повторном заказе форма по прежнему не показывается. А при первом оформлении заказа, стало показываться такое предупреждение:
Информация: Вы не являетесь зарегистрированным клиентом. Пожалуйста, введите информацию для оформления заказа.
« Последнее редактирование: 12.02.2015, 15:19:45 от sashgera »
*

fsv

  • Moderator
  • 2782
  • 411 / 2
Не помогло, при повторном заказе форма по прежнему не показывается.
Ну, с потолка взял. Сейчас проверил, действительно, не то.

Также посмотрел на <?php $sess->emptySession();?> . Вываливается куча ошибок (можно скрыть), но работает.
Цитировать
Но такое решение частично решает проблему. Если заполнить форму и нажать кнопку подтверждения, а потом вернуться, например чтобы изменить номер телефона, то форма снова не показывается.
То ли я вас не понял... У меня показывается. После размещения заказа, при повторном заказе опять требует регистрационные данные.
В какой момент вы возвращаетесь? Если ДО размещения заказа, то естественно формы не будет, сброс сессии после заказа. Если телефон поменять - жмите "(Update Address)" на Шаге1  - http://clip2net.com/s/3ckNs7f
Веб-разработка: заказ. Только новая разработка.
*

sashgera

  • Захожу иногда
  • 113
  • 0 / 0
Также посмотрел на <?php $sess->emptySession();?> . Вываливается куча ошибок (можно скрыть), но работает.
у меня ошибки не показываются
То ли я вас не понял... У меня показывается. После размещения заказа, при повторном заказе опять требует регистрационные данные.
В какой момент вы возвращаетесь? Если ДО размещения заказа, то естественно формы не будет, сброс сессии после заказа. Если телефон поменять - жмите "(Update Address)" на Шаге1  - http://clip2net.com/s/3ckNs7f
ну да, я это и имел ввиду, ДО размещения заказа, например, с шага 2 перейти снова на карточку товара. (кнопки Update Address у меня нет - код хакнутый)
Наверное других решений не существует, кроме как разорвать сессию после завершения заказа, так что буду использовать $sess->emptySession()
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Номер заказа в модуле

Автор sashgera

Ответов: 0
Просмотров: 3495
Последний ответ 28.02.2016, 22:44:30
от sashgera
One Page Checkout (оформление заказа на одной странице) - Скрыть поле по выбору радиобаттон

Автор sashgera

Ответов: 1
Просмотров: 4286
Последний ответ 23.09.2015, 06:02:39
от sashgera
Зависимый селект при оформлении заказа

Автор sashgera

Ответов: 1
Просмотров: 3616
Последний ответ 29.07.2015, 01:01:23
от orsy
Вывод номера заказа на странице сайта после его подтверждения

Автор redsowet

Ответов: 0
Просмотров: 3672
Последний ответ 02.03.2015, 16:49:22
от redsowet
Форма регистрации в VirtueMart 1.1.9 с reCaptcha

Автор sa1981

Ответов: 5
Просмотров: 4819
Последний ответ 10.02.2015, 22:53:51
от flyingspook