Форум русской поддержки Joomla!® CMS
07.12.2016, 22:18:24 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

И опять запрос... (~3с)

 (Прочитано 191 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« : 27.12.2015, 21:20:39 »


Обнаружил вот такой запрос  Shocked

Стек вызовов
Код:
JROOT/libraries/legacy/categories/categories.php:292
JROOT/libraries/legacy/categories/categories.php:184
JROOT/components/com_content/models/categories.php:147
JROOT/libraries/legacy/view/legacy.php:401
JROOT/components/com_content/views/categories/view.html.php:36
JROOT/libraries/legacy/controller/legacy.php:690
JROOT/components/com_content/controller.php:106
JROOT/libraries/legacy/controller/legacy.php:728
JROOT/components/com_content/content.php:38
JROOT/libraries/cms/component/helper.php:392
JROOT/libraries/cms/component/helper.php:372
JROOT/libraries/cms/application/site.php:192
JROOT/libraries/cms/application/site.php:231
JROOT/libraries/cms/application/cms.php:252
JROOT/index.php:46

План SQL-запросов (Explain)
Код
SELECT c.id, c.asset_id, c.access, c.alias, c.checked_out, c.checked_out_time, c.created_time, c.created_user_id, c.description, c.extension, c.hits, c.LANGUAGE, c.level, c.lft, c.metadata, c.metadesc, c.metakey, c.modified_time, c.note, c.params, c.parent_id, c.path, c.published, c.rgt, c.title, c.modified_user_id, c.version, CASE WHEN CHAR_LENGTH(c.alias)!= 0 THEN CONCAT_WS(':', c.id, c.alias) ELSE c.id END AS slug,COUNT(i.`id`) AS numitems FROM j_categories AS c LEFT JOIN j_categories AS s ON (s.lft <= c.lft AND s.rgt >= c.rgt) OR (s.lft > c.lft AND s.rgt < c.rgt) LEFT JOIN (SELECT cat.id AS id FROM j_categories AS cat JOIN j_categories AS parent ON cat.lft BETWEEN parent.lft AND parent.rgt WHERE parent.extension = 'com_content' AND parent.published != 1 GROUP BY cat.id) AS badcats ON badcats.id = c.id LEFT JOIN `j_content` AS i ON i.`catid` = c.id AND i.state = 1 WHERE (c.extension='com_content' OR c.extension='system') AND c.access IN (1,1,2,3,6) AND c.published = 1 AND s.id=18 AND badcats.id IS NULL GROUP BY c.id, c.asset_id, c.access, c.alias, c.checked_out, c.checked_out_time, c.created_time, c.created_user_id, c.description, c.extension, c.hits, c.LANGUAGE, c.level, c.lft, c.metadata, c.metadesc, c.metakey, c.modified_time, c.note, c.params, c.parent_id, c.path, c.published, c.rgt, c.title, c.modified_user_id, c.version ORDER BY c.lft

Ссылка в меню "Список категорий", плагины отключал все, модули тоже, результат уменьшается примерно на 0.3с
Это так и должно быть ?

PS
Сервер 4ядра, 12Гб памяти, SSD 100Гб
Записан
voland
Профи
********

Репутация: +487/-86
Offline Offline

Пол: Мужской
Сообщений: 8719


любит наш народ всякое гавно...


« Ответ #1 : 27.12.2015, 22:03:07 »

Надо смотреть..
Сколько категорий итп, настраивать.
Можно очень ускорить
Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #2 : 27.12.2015, 22:29:12 »

Надо смотреть..
Сколько категорий итп, настраивать.
Можно очень ускорить

3 корневых
Новости, фото, видео.
В фото и видео примерно по 23 и 53 подкатегории, которые и выводятся по ссылке... т.е. в фото выводиться 23 и в видео 53.
Материалов примерно 30000. Но дело в том, что в фото материалов дай бог 50, а всё равно время одинаковое !
Записан
voland
Профи
********

Репутация: +487/-86
Offline Offline

Пол: Мужской
Сообщений: 8719


любит наш народ всякое гавно...


« Ответ #3 : 27.12.2015, 22:44:55 »

Ясно.
Могу оптимизировать, но платно.
Так не посоветовать быстро
Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #4 : 27.12.2015, 22:50:05 »

Ясно.
Могу оптимизировать, но платно.
Так не посоветовать быстро
загнать в кеш этот запрос я могу, мне интересно другое... Это такая "стандартная фича !J" ?
Записан
voland
Профи
********

Репутация: +487/-86
Offline Offline

Пол: Мужской
Сообщений: 8719


любит наш народ всякое гавно...


« Ответ #5 : 27.12.2015, 22:51:02 »

Я не про кэш, а про оптимизацию запроса.
Стандартно или нет - хз, надо смотреть.
Записан
voland
Профи
********

Репутация: +487/-86
Offline Offline

Пол: Мужской
Сообщений: 8719


любит наш народ всякое гавно...


« Ответ #6 : 27.12.2015, 22:51:41 »

Вчера вот ускорил меню в 800 раз, но тут другая ситуация вроде.
Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #7 : 27.12.2015, 22:58:19 »

Вчера вот ускорил меню в 800 раз, но тут другая ситуация вроде.

Код
		$cache = JFactory::getCache('categories', '');
if (!$results = $cache->get('categories_'.$id))
{
$db->setQuery($query);
$results = $db->loadObjectList('id');
 $cache->store($results, 'categories_'.$id);
}
 

Вот такая простая манипуляция избавляет от проблемы... Но я про "стандартную фичу !J" хотел бы услышать...
Записан
voland
Профи
********

Репутация: +487/-86
Offline Offline

Пол: Мужской
Сообщений: 8719


любит наш народ всякое гавно...


« Ответ #8 : 27.12.2015, 22:59:52 »

Предлагаете поднять тестовый сайт, сделать меню, 30000 материалов итп?
Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #9 : 27.12.2015, 23:04:55 »

Предлагаете поднять тестовый сайт, сделать меню, 30000 материалов итп?
Я ничего не предлагаю... Я предполагал что в курсе этого...

И кстати... А причём тут материалы, если это "Список всех категорий" ? Кол\во материалов у меня не подсчитываются при выводе...
Записан
voland
Профи
********

Репутация: +487/-86
Offline Offline

Пол: Мужской
Сообщений: 8719


любит наш народ всякое гавно...


« Ответ #10 : 27.12.2015, 23:12:55 »

Ну в запросе же LEFT JOIN j_content
Записан
voland
Профи
********

Репутация: +487/-86
Offline Offline

Пол: Мужской
Сообщений: 8719


любит наш народ всякое гавно...


« Ответ #11 : 27.12.2015, 23:32:55 »

Wertos, кинь в личку дамп БД, посмотрю (если там нет кучи левых расширений, изза которых не поднимется)
Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #12 : 27.12.2015, 23:37:12 »

Wertos, кинь в личку дамп БД, посмотрю (если там нет кучи левых расширений, изза которых не поднимется)
Весь или конкретные таблички ?
Записан
voland
Профи
********

Репутация: +487/-86
Offline Offline

Пол: Мужской
Сообщений: 8719


любит наш народ всякое гавно...


« Ответ #13 : 27.12.2015, 23:39:52 »

Весь или конкретные таблички ?
Мне проще весь - отдельную БД создам\удалю
Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #14 : 28.12.2015, 00:14:10 »

voland, а проблема вот в чём... В этой строке...

Код
$options['countItems'] = $params->get('show_cat_num_articles_cat', 1) || !$params->get('show_empty_categories_cat', 0);
Она всегда true !
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet