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

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

тормоза по 5-20 секунд на sql запросах

 (Прочитано 655 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Sergio111
Осваиваюсь на форуме
***

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

Сообщений: 163



« : 19.08.2016, 10:59:23 »

Добрый день, уважаемые all!
У меня около месяца подряд несколько сайтов стало тормозить при открытии.
Сайты на vps freehost.com.ua  Некоторые запросы выполняются очень долго 5-10-20-30 секунд. Раньше такого не было.
Хостер ссылается на то, что помочь может только разработчик сайта, с себя вину снимает полностью.
Один из сайтов - http://biblionet.com.ua/
Яндекс - метрика сайта : https://metrika.yandex.ru/stat/monitoring_results?id=23847346
Включил кеш на сайтах, оптимизировал таблицы. Помогает не особо.
Пишу логи медленных запросов. Пример - 3 запроса из БД.
Показать текстовый блок
Подскажите, что можно сделать в данной ситуации.
« Последнее редактирование: 19.08.2016, 11:06:09 от Sergio111 » Записан
voland
Профи
********

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

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


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


« Ответ #1 : 19.08.2016, 11:31:11 »

Индексы есть?
Записан
Sergio111
Осваиваюсь на форуме
***

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

Сообщений: 163



« Ответ #2 : 19.08.2016, 11:57:35 »

Индексы есть?
Откровенно говоря, так далеко я не влезал. Но индексы таблиц, безусловно, есть -  стандартные для Joomla 2.5 . К примеру, для таблицы
"content"
есть индексы
PRIMARY   
idx_access   
idx_checkout
idx_state   
idx_catid   
idx_createdby
idx_featured_catid
catid   
idx_language
idx_xreference
Записан
voland
Профи
********

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

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


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


« Ответ #3 : 19.08.2016, 12:04:24 »

Сайты на vps freehost.com.ua
Ой. Бесплатная что ли?
Сорри, не заметил
Записан
Sergio111
Осваиваюсь на форуме
***

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

Сообщений: 163



« Ответ #4 : 19.08.2016, 12:25:23 »

Ой. Бесплатная что ли?
Сорри, не заметил
Ни в коем случае, не бесплатная.
Записан
draff
Практически профи
*******

Репутация: +161/-5
Offline Offline

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


step by step


« Ответ #5 : 19.08.2016, 13:38:22 »

А полная версия Joomla ?
Цитировать
для Joomla 2.5
Патч безопасности от декабря 2015 г. установлен ?
Записан
Sergio111
Осваиваюсь на форуме
***

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

Сообщений: 163



« Ответ #6 : 19.08.2016, 14:26:20 »

А полная версия Joomla ?Патч безопасности от декабря 2015 г. установлен ?
Версия Joomla - самая новая. Есть обновления для следующих компонентов и плагинов:
JCE Editor   
JComments   
JComments - Social Login
JComments Latest   
jlvkgroup   
Sourcerer
Записан
Sergio111
Осваиваюсь на форуме
***

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

Сообщений: 163



« Ответ #7 : 19.08.2016, 14:43:24 »

Странно, версия Joomla написана  - самая новая, а по одному из советов в интернете - ввёл адрес - http://biblionet.com.ua/language/en-GB/en-GB.xml
написано - <version>2.5.19</version>
Обновиться принудительно? Перезаписью файлов поверх старых?
Записан
draff
Практически профи
*******

Репутация: +161/-5
Offline Offline

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


step by step


« Ответ #8 : 19.08.2016, 15:03:14 »

Версия Joomla - самая новая. Есть обновления для следующих компонентов и плагинов:
Интересно какая новая. А точный ответ можно узнать в админке Joomla- Информация о системе
п.с.
а патч- тишина?
« Последнее редактирование: 19.08.2016, 15:21:30 от draff » Записан
Sergio111
Осваиваюсь на форуме
***

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

Сообщений: 163



« Ответ #9 : 21.08.2016, 19:19:10 »

Версия Joomla!   Joomla! 2.5.27 Stable [ Ember ] 30-September-2014 14:00 GMT
Подскажите, пожалуйста, какой патч нужен?


Интересно какая новая. А точный ответ можно узнать в админке Joomla- Информация о системе
п.с.
а патч- тишина?

Записан
draff
Практически профи
*******

Репутация: +161/-5
Offline Offline

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


step by step


« Ответ #10 : 21.08.2016, 19:25:07 »

Подскажите, пожалуйста, какой патч нужен?
http://joomlaforum.ru/index.php/topic,330268.msg1661031.html#msg1661031
Записан
flyingspook
Профи
********

Репутация: +226/-9
Offline Offline

Сообщений: 3525


« Ответ #11 : 22.08.2016, 15:07:40 »

Подскажите, пожалуйста, какой патч нужен?
И уже возможно что поздно.
Записан
Sergio111
Осваиваюсь на форуме
***

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

Сообщений: 163



« Ответ #12 : 23.08.2016, 08:46:42 »

Поставил патч - не помогло. Всё равно запросы выполняются очень долго. Этот Select огромный с кучей - 7 штук - LEFT JOIN выполняется по 20 секунд - тот select, который второй в первом моём посте. Подскажите, пожалуйста, что делать, как его оптимизировать.
Записан
Sergio111
Осваиваюсь на форуме
***

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

Сообщений: 163



« Ответ #13 : 23.08.2016, 10:21:57 »

Экспериментирую с запросом к БД.
Код:
SELECT a.id, a.title, a.alias, a.title_alias, a.introtext, a.language, a.checked_out, a.checked_out_time, a.catid, a.created, a.created_by, a.created_by_alias, CASE WHEN a.modified = 0 THEN a.created ELSE a.modified END as modified, a.modified_by, uam.name as modified_by_name,CASE WHEN a.publish_up = 0 THEN a.created ELSE a.publish_up END as publish_up,a.publish_down, a.images, a.urls, a.attribs, a.metadata, a.metakey, a.metadesc, a.access, a.hits, a.xreference, a.featured, LENGTH(a.fulltext) AS readmore,CASE WHEN badcats.id is not null THEN 0 ELSE a.state END AS state,c.title AS category_title, c.path AS category_route, c.access AS category_access, c.alias AS category_alias,CASE WHEN a.created_by_alias > ' ' THEN a.created_by_alias ELSE ua.name END AS author,ua.email AS author_email,(
SELECT MAX(contact.id) AS id
FROM hdsau_contact_details AS contact
WHERE contact.published = 1 AND contact.user_id = a.created_by) as contactid,parent.title as parent_title, parent.id as parent_id, parent.path as parent_route, parent.alias as parent_alias,ROUND(v.rating_sum / v.rating_count, 0) AS rating, v.rating_count as rating_count,c.published, CASE WHEN badcats.id is null THEN c.published ELSE 0 END AS parents_published
FROM hdsau_content AS a
LEFT JOIN hdsau_content_frontpage AS fp ON fp.content_id = a.id
LEFT JOIN hdsau_categories AS c ON c.id = a.catid
LEFT JOIN hdsau_users AS ua ON ua.id = a.created_by
LEFT JOIN hdsau_users AS uam ON uam.id = a.modified_by
LEFT JOIN hdsau_categories as parent ON parent.id = c.parent_id
LEFT JOIN hdsau_content_rating AS v ON a.id = v.content_id
LEFT OUTER JOIN (SELECT cat.id as id FROM hdsau_categories AS cat JOIN hdsau_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
WHERE a.access IN (1,1) AND c.access IN (1,1) AND CASE WHEN badcats.id is null THEN a.state ELSE 0 END = 1 AND (a.catid = 10 OR a.catid IN (
SELECT sub.id
FROM hdsau_categories as sub
INNER JOIN hdsau_categories as this ON sub.lft > this.lft AND sub.rgt < this.rgt
WHERE this.id = 10)) AND (a.publish_up = '0000-00-00 00:00:00' OR a.publish_up <= '2016-08-22 19:30:54') AND (a.publish_down = '0000-00-00 00:00:00' OR a.publish_down >= '2016-08-22 19:30:54')
ORDER BY    CASE WHEN a.publish_up = 0 THEN a.created ELSE a.publish_up END  DESC ,  a.created LIMIT 180, 24;
Он выполняется, к примеру,  4.3035 сек.
Убираю в запросе - в последней строке
Код:
ORDER BY    CASE WHEN a.publish_up = 0 THEN a.created ELSE a.publish_up END  DESC ,  a.created
Запрос выполняется 0.0134 сек. В 320 раз быстрее.
Хотя записи, само собой, получаются  расположены не в том порядке. Скажите, можно ли  и запрос ускорить, и порядок оставить такой же, как в исходном запросе?
Записан
robert
Профи
********

Репутация: +343/-11
Offline Offline

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


« Ответ #14 : 23.08.2016, 10:54:24 »

Много JOIN и подзапросов. Имеет смысл пробовать разбить на простые запросы.
Код:
ORDER BY    CASE WHEN a.publish_up = 0 THEN a.created ELSE a.publish_up END  DESC ,  a.created
Что за дурацкая сортировка? В каком порядке хотите вывести записи?
Записан
Sergio111
Осваиваюсь на форуме
***

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

Сообщений: 163



« Ответ #15 : 23.08.2016, 11:34:40 »

Много JOIN и подзапросов. Имеет смысл пробовать разбить на простые запросы.Что за дурацкая сортировка? В каком порядке хотите вывести записи?
Уважаемый robert, это не я придумываю сортировку. Это пример реального запроса, на котором тормозит сайт. Я зашел в панель MySQL и стал экспериментировать с этим запросом, чтобы понять, какая его часть оказывает критичное влияние на быстродействие. Результат я описал. Я был бы рад, чтобы кто-нибудь мне посоветовал как разбить данный запрос на 2 части - сначала, допустим, select без order, потом следующий - сортировка. Беда в том, что я плохо представляю как мне сделать временную таблицу, потом запрос к ней. И совершенно не понимаю, в каком файле Joomla 2.5.27 мне вносить эти изменения. Буду благодарен услышать любые советы по этому поводу.
« Последнее редактирование: 23.08.2016, 11:41:51 от Sergio111 » Записан
Sergio111
Осваиваюсь на форуме
***

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

Сообщений: 163



« Ответ #16 : 23.08.2016, 11:39:47 »

И уже возможно что поздно.
На счёт поздно - не понимаю, почему. Есть база данных, есть к ней запросы, которые тормозят. Думаю, что не поздно ускорить выполнение этих запросов.
Записан
robert
Профи
********

Репутация: +343/-11
Offline Offline

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


« Ответ #17 : 23.08.2016, 13:06:01 »

в каком файле Joomla 2.5.27 мне вносить эти изменения
Хм, это, как выяснилось, родной запрос Joomla, так что вносить будете в ее ядро.

Не могу понять, зачем вместо
Код
ORDER BY publish_up DESC , a.created
написали такое
Код:
ORDER BY    CASE WHEN a.publish_up = 0 THEN a.created ELSE a.publish_up END  DESC ,  a.created
?

Кстати, у вас там материалов тысяч 100, что ли?
Записан
zomby6888
Живу я здесь
******

Репутация: +168/-3
Offline Offline

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


« Ответ #18 : 23.08.2016, 14:56:29 »

Убираю в запросе - в последней строке
Код:
ORDER BY    CASE WHEN a.publish_up = 0 THEN a.created ELSE a.publish_up END  DESC ,  a.created
Запрос выполняется 0.0134 сек. В 320 раз быстрее.
Хотя записи, само собой, получаются  расположены не в том порядке. Скажите, можно ли  и запрос ускорить, и порядок оставить такой же, как в исходном запросе?

Индексы стоят на эти поля?
Записан
draff
Практически профи
*******

Репутация: +161/-5
Offline Offline

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


step by step


« Ответ #19 : 23.08.2016, 15:28:43 »

Поставил патч - не помогло. Всё равно запросы выполняются очень долго.
Патч не для оптимизации сайта, а как проверка на наличие уязвимости движка сайта.
 А если не был установлен патч, то вероятно был взлом сайта. И параллельно с выполнением запросов к БД, могут создаваться еще процессы, которые и грузят хостинг.
Записан
flyingspook
Профи
********

Репутация: +226/-9
Offline Offline

Сообщений: 3525


« Ответ #20 : 23.08.2016, 15:40:54 »

Нам всем не понятно, что у вас и как выполнено на сайте.
Из опыта, более 5000 материалов или хорошая посещаемость + комментарии в материалах, оптимизируется увеличением железа, как вариант обновление на последнюю актуальную версию 3.6.*, еще не слышал что бы кто то оптимизировать пытался не поддерживаемые версии движка, смысла в этом не вижу.
Железо бралось вплоть до дедиков с 48гб озу
Записан
Sergio111
Осваиваюсь на форуме
***

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

Сообщений: 163



« Ответ #21 : 23.08.2016, 18:17:25 »

Хм, это, как выяснилось, родной запрос Joomla, так что вносить будете в ее ядро.

Не могу понять, зачем вместо
Код
ORDER BY publish_up DESC , a.created
написали такое?

Кстати, у вас там материалов тысяч 100, что ли?
Материалов 1410 всего в таблице content.
написали такое? - это разработчики, не я.
"Хм, это, как выяснилось, родной запрос Joomla, так что вносить будете в ее ядро." -  в каком файле формируется этот запрос, как понять?
Записан
Sergio111
Осваиваюсь на форуме
***

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

Сообщений: 163



« Ответ #22 : 23.08.2016, 18:18:51 »

Индексы стоят на эти поля?
Индексов на эти поля нет . Сделал индексы 2 штуки - на поля created и publish_up . Не помогло, запрос выполняется столько же времени.
Да и эти индексы - по 1410 Уникальных элементов, как и записей в таблице.
Нет, однозначно надо делать что-то с запросом.
« Последнее редактирование: 23.08.2016, 18:23:10 от Sergio111 » Записан
Sergio111
Осваиваюсь на форуме
***

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

Сообщений: 163



« Ответ #23 : 23.08.2016, 18:20:54 »

Патч не для оптимизации сайта, а как проверка на наличие уязвимости движка сайта.
 А если не был установлен патч, то вероятно был взлом сайта. И параллельно с выполнением запросов к БД, могут создаваться еще процессы, которые и грузят хостинг.

Может, Вы правы, хотя вряд ли... Небольшое изменение запроса  - и он выполняется мгновенно.
Записан
voland
Профи
********

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

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


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


« Ответ #24 : 23.08.2016, 19:16:59 »

Надо изучать запрос поподробнее.
Потюнить мускуль возможно будет достаточно - размер временных таблиц, их расположение и всё такое.
Записан
zomby6888
Живу я здесь
******

Репутация: +168/-3
Offline Offline

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


« Ответ #25 : 24.08.2016, 04:13:12 »

вот еще https://habrahabr.ru/post/138163/ может поможет
Записан
Sergio111
Осваиваюсь на форуме
***

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

Сообщений: 163



« Ответ #26 : 24.08.2016, 07:17:09 »

вот еще https://habrahabr.ru/post/138163/ может поможет
Спасибо за совет, попробовал - не помогло.
Записан
voland
Профи
********

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

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


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


« Ответ #27 : 24.08.2016, 07:37:08 »

А что там с версией движка?
Записан
robert
Профи
********

Репутация: +343/-11
Offline Offline

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


« Ответ #28 : 24.08.2016, 10:43:25 »

Запросы формируются здесь: /components/com_content/models/articles.php и /components/com_content/helpers/query.php.
Но я бы не торопился править движок: у вас записей немного и не только у вас стоит Joomla, но почему-то у других такой проблемы не возникло. Как я понял, вы прогоняли запросы прямо в админке БД - значит, движок со своей версией и патчами тут пока ни при чем. Дело скорее всего в железе, конфигурации сервера, настройке БД и т.д. Напрягите хостера.
Записан
zomby6888
Живу я здесь
******

Репутация: +168/-3
Offline Offline

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


« Ответ #29 : 24.08.2016, 13:00:44 »

Разверните бекап базы и сайта на локальном сервере. Будет видно если проблема в таблицах или настройках мускуля.
Записан
Страниц: [1] 2  Все   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

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