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

jenya147

  • Новичок
  • 2
  • 0 / 0
Ответ MySQL: #1062 - Duplicate entry
« : 25.11.2010, 21:40:22 »
Возникла след. проблема, Всем буду благодарен за любую информацию по моей проблеме, не судите строго использую Joomla пару месяцев ещё не до конца разобрался: при импортировании базы данных на сервер(хост) выскакивает сообщение:


Ошибка

SQL-запрос:

--
-- Дамп данных таблицы `jos_categories`
--
INSERT INTO `jos_categories` ( `id` , `parent_id` , `title` , `name` , `alias` , `image` , `section` , `image_position` , `description` , `published` , `checked_out` , `checked_out_time` , `editor` , `ordering` , `access` , `count` , `params` )
VALUES ( 12, 0, 'Контакты', '', 'contacts', 'articles.jpg', 'com_contact_details', 'left', 'КОНТАКТЫ<img src="images/stories/articles.jpg" border="0" />', 0, 0, '0000-00-00 00:00:00', NULL , 0, 0, 0, '' ), ( 15, 0, 'Features', '', 'features', '', 'com_content', 'left', '', 0, 0, '0000-00-00 00:00:00', NULL , 6, 0, 0, '' ), ( 17, 0, 'Benefits', '', 'benefits', '', 'com_content', 'left', '', 0, 0, '0000-00-00 00:00:00', NULL , 4, 0, 0, '' ), ( 18, 0, 'Platforms', '', 'platforms', '', 'com_content', 'left', '', 0, 0, '0000-00-00 00:00:00', NULL , 3, 0, 0, '' ), ( 34, 0, 'About', '', 'about', '', '5', 'left', '', 1, 62, '2010-11-02 21:38:13', NULL , 1, 0, 0, '' ) ;


Ответ MySQL:  
#1062 - Duplicate entry '12' for key 1

и далее больше не импортирует таблицы.
Используется Joomla 1.5.8+VirtualMart1.1.4+JoomSEF 3.6.2

[записка модератора: просьба соблюдать правила форума по части создания информативных заголовков тем.]
« Последнее редактирование: 25.11.2010, 22:46:19 от 4webspot »
*

Roberta

  • Захожу иногда
  • 182
  • 0 / 0
Re: Ответ MySQL: #1062 - Duplicate entry
« Ответ #1 : 25.11.2010, 21:48:12 »
ошибка говорит о том что дублируется пункт БД. нужно либо очистить эту строку или удалить, а после этого импортировать
« Последнее редактирование: 25.11.2010, 22:47:02 от 4webspot »
*

beagler

  • Живу я здесь
  • 3276
  • 392 / 4
  • https://alorisman.ru/
*

flyingspook

  • Живу я здесь
  • 3590
  • 247 / 9
Re: Ответ MySQL: #1062 - Duplicate entry
« Ответ #3 : 25.11.2010, 22:17:24 »
говорит что дубль но
иногда если импортировать с архива
gz или zip
пропускает
но пробовать оба архива надо предпочтительней gz
« Последнее редактирование: 25.11.2010, 22:47:26 от 4webspot »
*

jenya147

  • Новичок
  • 2
  • 0 / 0
Re: Ответ MySQL: #1062 - Duplicate entry
« Ответ #4 : 26.11.2010, 09:17:50 »
Всем большее спасибо, проблема решена  - бэкапом на хостинге.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ошибка при загрузке модулей:MySQL server has gone away

Автор svskach

Ответов: 13
Просмотров: 6590
Последний ответ 31.01.2018, 10:56:15
от Evrokub
Нужна помощь - Unable to connect to the database:Could not connect to MySQL

Автор SUROVblY

Ответов: 0
Просмотров: 1545
Последний ответ 10.09.2015, 11:53:45
от SUROVblY
[Инфо] Собственная страница - Ошибка 404. Ответ

Автор css_ufa

Ответов: 12
Просмотров: 3835
Последний ответ 01.04.2014, 11:44:12
от kolio
JoomlaComent адаптировать под MySQL - ошибка 1064

Автор espey

Ответов: 0
Просмотров: 1149
Последний ответ 28.03.2014, 02:43:22
от espey
Warning: mysql_query() [function.mysql-query]: Unable to save result set in

Автор kempin

Ответов: 2
Просмотров: 3447
Последний ответ 22.10.2013, 16:02:17
от dark_star