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

darkghost

  • Живу я здесь
  • 2212
  • 97 / 0
Компонент для поиска в БД
« : 05.07.2017, 14:43:41 »
Доброе время суток, Форум!

Извините, что сразу с вопроса: есть ли в "природе" некий плагин, компонент, который производит поиск по БД с целью ее "оптимизации"?
Поясню. В БД современем накапливаются таблицы, "строки" которые не используются по ряде причин. Например, компонент или материал удален, а его (ее) запись все еще есть.
Вот к примеру, Plugins Garbage Collector - сканирует БД и ищет таблицы, которые не принадлежат самому wordpress
Есть ли нечто для Joomla?

Заранее благодарен
*

ChaosHead

  • Гуру
  • 5242
  • 451 / 13
Re: Компонент для поиска в БД
« Ответ #1 : 05.07.2017, 15:08:16 »
А много вы удаляете и как часто? Если сотнями в день, то ещё можно думать о плагине, а если редко, то так-же редко раз в пару месяцев зайти в phpMyAdmin и оптимизировать таблицы.
Хотя вот помню, что как-то давно тут на форуме видел подобный плагин.

Вот ещё запрос, кстати, который чистит права доступа к материалам, если вы их не используете http://joomlaforum.ru/index.php/topic,204055.msg1205095.html#msg1205095
« Последнее редактирование: 05.07.2017, 15:13:45 от ChaosHead »
*

darkghost

  • Живу я здесь
  • 2212
  • 97 / 0
Re: Компонент для поиска в БД
« Ответ #2 : 05.07.2017, 15:13:42 »
Часто не часто - суть не в этом. Ведь для того, чтобы очистить БД необходимо знать какой плагин, модуль или материал был удален. Если знаешь - это хорошо, но вот если удаляют часто и Ты практически не в силах уследить - что и когда было удалено, чтобы оптимизировать БД
*

ChaosHead

  • Гуру
  • 5242
  • 451 / 13
Re: Компонент для поиска в БД
« Ответ #3 : 05.07.2017, 15:18:49 »
Удаление материала не удаляет его из БД, а только помечает материал как удалённый, из БД его удаляет чистка корзины материалов. Но физически размер базы при этом тоже не снижается, там записи тоже помечаются как удалённые, пока вы не прогоните оптимизацию таблицы.
Т.е. отслеживать ничего не надо - почистили корзину материалов, потом зашли в phpMyAdmin и оптимизировали.

А левые таблицы могут только от компонентов остаться, их ручками чищу, ни и не каждый же день компоненты ставишь и удаляешь...
« Последнее редактирование: 05.07.2017, 15:22:18 от ChaosHead »
*

darkghost

  • Живу я здесь
  • 2212
  • 97 / 0
Re: Компонент для поиска в БД
« Ответ #4 : 05.07.2017, 15:33:39 »
С материалами --- полностью согласен.
Но а все же, есть некое "изобретение" для облегчения работы с БД?
*

ChaosHead

  • Гуру
  • 5242
  • 451 / 13
Re: Компонент для поиска в БД
« Ответ #5 : 05.07.2017, 22:57:05 »
В старых версиях плагин назывался OptimizeTables. По идее можно переписать под новую, но он видимо не особо популярен был.
Просто на сколько я знаю wp - там реально всё порой криворуко в таблицы какие попало пишется, причем порой в таблицы не свои, что потом нужно выискивать и чистить. В Joomla как-то такой жести не встречал.
*

darkghost

  • Живу я здесь
  • 2212
  • 97 / 0
Re: Компонент для поиска в БД
« Ответ #6 : 06.07.2017, 10:13:18 »
то есть иными словами - все приходится делать самому и ручками?
*

ChaosHead

  • Гуру
  • 5242
  • 451 / 13
Re: Компонент для поиска в БД
« Ответ #7 : 06.07.2017, 11:25:55 »
Иными словами ничего не приходится делать. Раз в году зашел - оптимизировал таблицы, уменьшились они на 2%, ну и ок.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Нужен компонент для отслеживания трафика для борьбы с роботами

Автор art22

Ответов: 7
Просмотров: 5667
Последний ответ 02.06.2025, 22:50:48
от art22
Компонент для Joomla 4 Менеджер Мета Тегов

Автор azm1n

Ответов: 2
Просмотров: 1198
Последний ответ 09.05.2025, 11:30:21
от azm1n
Посоветуйте компонент для базы студентов

Автор Mick_20

Ответов: 1
Просмотров: 1494
Последний ответ 21.02.2025, 12:56:34
от NewUsers
Нужна рабочая связка: CMS <> компонент ИМ <> 1С <> API почта, сдэк, BoxBerry

Автор dss

Ответов: 2
Просмотров: 4922
Последний ответ 11.08.2023, 00:40:51
от Sulpher
Компонент для вывода семинаров

Автор gantelay

Ответов: 11
Просмотров: 5166
Последний ответ 04.07.2023, 13:40:26
от vovchikku