• UAH
  • USD
  • RUB
  • EUR
  • +38(044) 392-74-33  Киев
  • +38(057) 728-39-00  Харьков
  • +38(056) 794-38-31  Днепропетровск
  • +38(062) 210-24-93  Донецк
  • +38(032) 229-58-93  Львов
  • +38(048) 738-57-70  Одесса
  • +38(093) 449-04-21  Life
  • +38(067) 400-88-44  Киевстар
  • +38(095) 007-72-35  MTC
  • +1(888)393-24-51  USA, Toll free
  • +44(131)507-01-14  Great Britain
  • +7(499) 348-28-61  Москва

MySQL. Медленные запросы к БД

Форумы MySQL Медленные запросы к БД
gulievizzet
10.11.2013 00:37
хостинг: есть
домен: есть
Медленные запросы к БД
Добрый вечер всем, на этом прекрасном хостинге почти с марта 2013, все работало шикарно вплоть до сентября, и вина как говорят специалисты тех поддержки в моем сайте, начали появляться медлыенные запросы которые вещают сайт, самое обидно я человек далекий от сайтостроения кодов и т.п. Заказывал сайт, заплатил сделали и отдали на руки. все работало отлично, но вот эти медленные запросы.

НА вопрос можно ли узнать причина и корень зла, тех поддержка отвечает что не знакома со спецификой моего сайта и этим должен заниматься админиистрор моего сайта, но ведь ребят не у всех ест этот администратор ;( как быть в таком случае, есть клиенты которым нужно помочь, можно и за деньги. ведь меня в остальном устраивает абсолютно все.

Сайт создан на джумле, 90 % стат. содержимое, никаких лишних модулей и компонентов только соц сети и 1 самописный модуль, который стабильно работал.

Вчера 10.11.13 до 4 утра переписывался со специалистом тех поддержки Александром, упал сайт, он сам не мог восстановить мои копии из бекапа, происходила ошибка писало неверный шаблон, сначала мне писали что битый бекап, хотя это ваш автот. созданные бекап с которого я пару часов до этого 3-4 раза удачно восстанавливался. не важно восстановили за 07.11 и опять ничего не работает, вообщем до 4 утра Александр сумел решить проблему, предложив мне миграцию аккаунта как временно решение проблемы и сказал что мне нужно оптимизировать медленные запросы, но как мне это сделать ? человеку которому ничего в этом не понимает ;( Вы же на сайте рекламируете ваш хостинг как прекрасно подходящий для джумлы, соотв. хотя бы миним. должны быть знакомы со спецификой работы этого шаблона. Помогите пожалуйста с проблемой.
sonicua
10.11.2013 14:13
хостинг: нет
домен: нет
Напишите, какие запросы у вас выполняются медленно, попробую помочь.
gulievizzet
10.11.2013 16:20
хостинг: есть
домен: есть
Текст запроса:
SELECT a.id, a.title, a.alias, a.introtext, a.full

SQL:



SELECT a.id, a.title, a.alias, a.introtext, a.fulltext, a.checked_out, a.checked_out_time, a.catid, a.created, a.created_by, a.created_by_alias, CASE WHEN a.modified = '0000-00-00 00:00:00' THEN a.created ELSE a.modified END AS modified, a.modified_by, uam.name AS modified_by_name,CASE WHEN a.publish_up = '0000-00-00 00:00:00' 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 yua8c_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 yua8c_content AS a
LEFT JOIN yua8c_content_frontpage AS fp ON fp.content_id = a.id
LEFT JOIN yua8c_categories AS c ON c.id = a.catid
LEFT JOIN yua8c_users AS ua ON ua.id = a.created_by
LEFT JOIN yua8c_users AS uam ON uam.id = a.modified_by
LEFT JOIN yua8c_categories AS parent ON parent.id = c.parent_id
LEFT JOIN yua8c_content_rating AS v ON a.id = v.content_id
LEFT OUTER JOIN (SELECT cat.id AS id FROM yua8c_categories AS cat JOIN yua8c_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 = 8 AND (a.publish_up = '0000-00-00 00:00:00' OR a.publish_up <= '2013-11-09 18:49:00') AND (a.publish_down = '0000-00-00 00:00:00' OR a.publish_down >= '2013-11-09 18:49:00')
ORDER BY c.lft, a.ordering, a.created LIMIT 0, 20

и в описание какая то таблица как его вставить не знаю сюда:
Тип выборки Возможные ключи Ключ Ссылка Строки Дополнительная информация
PRIMARY :
system
0 const row not found
PRIMARY : c
const
PRIMARY,idx_access PRIMARY (4) const 1 Using filesort
PRIMARY : a
ref
idx_access,idx_catid idx_catid (4) const 17 Using where
PRIMARY : fp
eq_ref
PRIMARY PRIMARY (4) notebo02_db.a.id 1 Using index
PRIMARY : ua
eq_ref
PRIMARY PRIMARY (4) notebo02_db.a.created_by 1
PRIMARY : uam
eq_ref
PRIMARY PRIMARY (4) notebo02_db.a.modified_by 1
PRIMARY : parent
eq_ref
PRIMARY PRIMARY (4) const 1
PRIMARY : v
eq_ref
PRIMARY PRIMARY (4) notebo02_db.a.id 1
DERIVED : cat
index
idx_left_right idx_left_right (8) 6 Using index; Using temporary; Using filesort
DERIVED : parent
ALL
cat_idx,idx_left_right 6 Using where; Using join buffer
DEPENDENT SUBQUERY : contact
ref
idx_state idx_state (1) const 1 Using where
gulievizzet
10.11.2013 16:20
хостинг: есть
домен: есть
Буду благодарен за помощь !
gulievizzet
11.11.2013 10:19
хостинг: есть
домен: есть
Вот на 10.11.13 еще 4 медленных запроса:

SELECT m.id, m.menutype, m.title, m.alias, m.note, m.path AS route, m.link, m.type, m.level, m.LANGUAGE,`m`.`browserNav`, m.access, m.params, m.home, m.img, m.template_style_id, m.component_id, m.parent_id,e.element AS component
FROM yua8c_menu AS m
LEFT JOIN yua8c_extensions AS e ON m.component_id = e.extension_id
WHERE m.published = 1 AND m.parent_id > 0 AND m.client_id = 0
ORDER BY m.lft

SELECT m.id, m.menutype, m.title, m.alias, m.note, m.path AS route, m.link, m.type, m.level, m.LANGUAGE,`m`.`browserNav`, m.access, m.params, m.home, m.img, m.template_style_id, m.component_id, m.parent_id,e.element AS component
FROM yua8c_menu AS m
LEFT JOIN yua8c_extensions AS e ON m.component_id = e.extension_id
WHERE m.published = 1 AND m.parent_id > 0 AND m.client_id = 0
ORDER BY m.lft

SELECT m.id, m.title, m.module, m.POSITION, m.content, m.showtitle, m.params, mm.menuid
FROM yua8c_modules AS m
LEFT JOIN yua8c_modules_menu AS mm ON mm.moduleid = m.id
LEFT JOIN yua8c_extensions AS e ON e.element = m.module AND e.client_id = m.client_id
WHERE m.published = 1 AND e.enabled = 1 AND (m.publish_up = '0000-00-00 00:00:00' OR m.publish_up <= '2013-11-10 18:33:48') AND (m.publish_down = '0000-00-00 00:00:00' OR m.publish_down >= '2013-11-10 18:33:48') AND m.access IN (1,1) AND m.client_id = 0 AND (mm.menuid = 118 OR mm.menuid <= 0)
ORDER BY m.POSITION, m.ordering




SELECT a.id, a.title, a.alias, a.introtext, a.fulltext, a.checked_out, a.checked_out_time, a.catid, a.created, a.created_by, a.created_by_alias, CASE WHEN a.modified = '0000-00-00 00:00:00' THEN a.created ELSE a.modified END AS modified, a.modified_by, uam.name AS modified_by_name,CASE WHEN a.publish_up = '0000-00-00 00:00:00' 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 yua8c_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 yua8c_content AS a
LEFT JOIN yua8c_content_frontpage AS fp ON fp.content_id = a.id
LEFT JOIN yua8c_categories AS c ON c.id = a.catid
LEFT JOIN yua8c_users AS ua ON ua.id = a.created_by
LEFT JOIN yua8c_users AS uam ON uam.id = a.modified_by
LEFT JOIN yua8c_categories AS parent ON parent.id = c.parent_id
LEFT JOIN yua8c_content_rating AS v ON a.id = v.content_id
LEFT OUTER JOIN (SELECT cat.id AS id FROM yua8c_categories AS cat JOIN yua8c_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 = 8 AND (a.publish_up = '0000-00-00 00:00:00' OR a.publish_up <= '2013-11-09 18:49:00') AND (a.publish_down = '0000-00-00 00:00:00' OR a.publish_down >= '2013-11-09 18:49:00')
ORDER BY c.lft, a.ordering, a.created LIMIT 0, 20
Илья
12.11.2013 09:23
хостинг: есть
домен: есть
вина как говорят специалисты тех поддержки в моем сайте, начали появляться медлыенные запросы которые вещают сайт © gulievizzet


Что вы подразумеваете под "Вешают сайт"?
gulievizzet
12.11.2013 10:24
хостинг: есть
домен: есть
Ну смотрите страница 1 может грузиться по 2-3 мин, долго ждет ждет и открывает, извините за мои не технические обьяснения, так как я в этом мало что понимаю, но пару раз я так писал в службу поддержки, говорили это из за ваших медленных запросов так происходит, так ли это на самом деле увы я не знаю
Андрей
12.11.2013 10:40
хостинг: есть
домен: нет
Справа вверху у Вас на сайте есть окно чата:

Обратите внимание на то, что в случае, когда страничка начинает долго грузится - чат не отображается, ибо он не загружен, и как раз он и подгружается в моменты торможения сайта.
Сумел повторить проблему, выполнив 5-7 запросов к сайту с интервалом в 1 секунду.
Не утверждаю, что мое умозаключение есть верным, но рекомендую попробовать его отключить и протестировать работу сайта.
gulievizzet
12.11.2013 10:46
хостинг: есть
домен: есть
Этот вариант отпадает :) я его установил вчера :) До этого никаких частов не было, а проблема длиться последние 2-3 мес.
Андрей
12.11.2013 10:58
хостинг: есть
домен: нет
А twitter widget у Вас используется на сайте? Подключали?
gulievizzet
12.11.2013 11:13
хостинг: есть
домен: есть
Ну вот есть же кнопки твиттера, твитнуть, или вы не о нем спрашиваете ?
Андрей
12.11.2013 11:22
хостинг: есть
домен: нет
gulievizzet
12.11.2013 11:25
хостинг: есть
домен: есть
Еще раз скажу вам мало понимаю в этом, но спрошу, т.п нужно отключить кнопку твиттера на сайте ?

щас вам скину код твиттера который для сайта установлен, вы мне скажите это оно или нет:

<p><a class="twitter-share-button" href="https://twitter.com/share" data-url="http://notebookservice.com.ua" data-via="note_service" data-lang="ru" data-size="large">Твитнуть</a></p>

Вот единственный код от твиттера который установлен на сайте, в модулях смотрю.
gulievizzet
12.11.2013 11:26
хостинг: есть
домен: есть
Я щас отключил модуль твиттера, вы могли бы сказать щас этот запрос так же выполняется ?
Андрей
12.11.2013 16:48
хостинг: есть
домен: нет
вроде не видно
сайт лучше работать стал?
gulievizzet
12.11.2013 16:51
хостинг: есть
домен: есть
ну он уже последние 2 дня работает отлично, я провел не малую работу по отключению доп расришений, удалиния лишних скриптов и кода, в котором я хотя ы что то понимаю, пока буду наблюдать без твиттера, в любом случае спасибо Всем кто помогает ребят
gulievizzet
12.11.2013 19:55
хостинг: есть
домен: есть
за 12 число - 16 медленных запросов, ребят кто нибудь вообще понимает расшифровку этих таблиц которые я выкладывал ?
gulievizzet
12.11.2013 21:16
хостинг: есть
домен: есть
Выложу еще запросы, может у кого то будут какие то мысли еще:

SELECT m.id, m.menutype, m.title, m.alias, m.note, m.path AS route, m.link, m.type, m.level, m.LANGUAGE,`m`.`browserNav`, m.access, m.params, m.home, m.img, m.template_style_id, m.component_id, m.parent_id,e.element AS component
FROM yua8c_menu AS m
LEFT JOIN yua8c_extensions AS e ON m.component_id = e.extension_id
WHERE m.published = 1 AND m.parent_id > 0 AND m.client_id = 0
ORDER BY m.lft
___________________________________________________________________________

SELECT m.id, m.title, m.module, m.POSITION, m.content, m.showtitle, m.params, mm.menuid
FROM yua8c_modules AS m
LEFT JOIN yua8c_modules_menu AS mm ON mm.moduleid = m.id
LEFT JOIN yua8c_extensions AS e ON e.element = m.module AND e.client_id = m.client_id
WHERE m.published = 1 AND e.enabled = 1 AND (m.publish_up = '0000-00-00 00:00:00' OR m.publish_up <= '2013-11-12 09:14:31') AND (m.publish_down = '0000-00-00 00:00:00' OR m.publish_down >= '2013-11-12 09:14:31') AND m.access IN (1,1) AND m.client_id = 0 AND (mm.menuid = 105 OR mm.menuid <= 0)
ORDER BY m.POSITION, m.ordering
_________________________________________________________________



SELECT element,params
FROM yua8c_extensions
WHERE type='sef_ext'
__________________________________

SELECT m.id, m.title, m.module, m.POSITION, m.content, m.showtitle, m.params, mm.menuid
FROM yua8c_modules AS m
LEFT JOIN yua8c_modules_menu AS mm ON mm.moduleid = m.id
LEFT JOIN yua8c_extensions AS e ON e.element = m.module AND e.client_id = m.client_id
WHERE m.published = 1 AND e.enabled = 1 AND (m.publish_up = '0000-00-00 00:00:00' OR m.publish_up <= '2013-11-12 09:14:44') AND (m.publish_down = '0000-00-00 00:00:00' OR m.publish_down >= '2013-11-12 09:14:44') AND m.access IN (1,1) AND m.client_id = 0 AND (mm.menuid = 105 OR mm.menuid <= 0)
ORDER BY m.POSITION, m.ordering
__________________________________
sonicua
12.11.2013 22:09
хостинг: нет
домен: нет
Последние 4 запроса не должны вызывать никаких проблем, чего не скажешь о самом первом, что вы выкладывали. Если не стоит никаких сторонних компонентов/плагинов/компонентов то вообще странно. Может стоит попробовать включить кеширование. И да какая версия Джумлы?
gulievizzet
12.11.2013 23:29
хостинг: есть
домен: есть
3.2 сама последняя, сторонних модулей ребят только - фейбук, гугл+ и контакты, + еще метрика + аналитикс. но это уже абсурд ведь без них.

Артимо Джумсеф стоит как компонент для оптимизации

И 1 единственный модуль который писали под заказ для меня это раздел "фак"? но он вроде не хитрый по конструкции, просто добавляет контент или отзывы..

Вообщем кеширование включено, на данный момент все летает, просто эти запросы появляются, и я вот думаю как быть с ними или не обращать внимание ? кстати вот включил Gzip а проверка сайта на хостинге ругается говорит выключите, я хз вообще ;(
sonicua
13.11.2013 00:47
хостинг: нет
домен: нет
Попробуйте ещё отключить модуль faq и компонент Artio JoomSEF вместе с его плагинами.
Сжатие на хостинге уже включено по умолчанию, вот и проверка ругается.
gulievizzet
19.11.2013 21:42
хостинг: есть
домен: есть
Продолжаем музыку, медленные запросы никак не отсупают уже сделал оптимизацию базы, отключил все что можно было и даже не нужно было.

итог из 12мб база стала почти 8
тем не менее:

SELECT m.id, m.title, m.module, m.POSITION, m.content, m.showtitle, m.params, mm.menuid
FROM yua8c_modules AS m
LEFT JOIN yua8c_modules_menu AS mm ON mm.moduleid = m.id
LEFT JOIN yua8c_extensions AS e ON e.element = m.module AND e.client_id = m.client_id
WHERE m.published = 1 AND e.enabled = 1 AND (m.publish_up = '0000-00-00 00:00:00' OR m.publish_up <= '2013-11-19 14:49:09') AND (m.publish_down = '0000-00-00 00:00:00' OR m.publish_down >= '2013-11-19 14:49:09') AND m.access IN (1,1,2,3) AND m.client_id = 1 AND (mm.menuid = 0 OR mm.menuid <= 0)
ORDER BY m.POSITION, m.ordering

SELECT m.id, m.title, m.module, m.POSITION, m.content, m.showtitle, m.params, mm.menuid
FROM yua8c_modules AS m
LEFT JOIN yua8c_modules_menu AS mm ON mm.moduleid = m.id
LEFT JOIN yua8c_extensions AS e ON e.element = m.module AND e.client_id = m.client_id
WHERE m.published = 1 AND e.enabled = 1 AND (m.publish_up = '0000-00-00 00:00:00' OR m.publish_up <= '2013-11-19 14:49:12') AND (m.publish_down = '0000-00-00 00:00:00' OR m.publish_down >= '2013-11-19 14:49:12') AND m.access IN (1,1) AND m.client_id = 0 AND (mm.menuid = 118 OR mm.menuid <= 0)
ORDER BY m.POSITION, m.ordering

SELECT m.id, m.title, m.module, m.POSITION, m.content, m.showtitle, m.params, mm.menuid
FROM yua8c_modules AS m
LEFT JOIN yua8c_modules_menu AS mm ON mm.moduleid = m.id
LEFT JOIN yua8c_extensions AS e ON e.element = m.module AND e.client_id = m.client_id
WHERE m.published = 1 AND e.enabled = 1 AND (m.publish_up = '0000-00-00 00:00:00' OR m.publish_up <= '2013-11-19 14:48:52') AND (m.publish_down = '0000-00-00 00:00:00' OR m.publish_down >= '2013-11-19 14:48:52') AND m.access IN (1,1) AND m.client_id = 0 AND (mm.menuid = 116 OR mm.menuid <= 0)
ORDER BY m.POSITION, m.ordering

SELECT m.id, m.menutype, m.title, m.alias, m.note, m.path AS route, m.link, m.type, m.level, m.LANGUAGE,`m`.`browserNav`, m.access, m.params, m.home, m.img, m.template_style_id, m.component_id, m.parent_id,e.element AS component
FROM yua8c_menu AS m
LEFT JOIN yua8c_extensions AS e ON m.component_id = e.extension_id
WHERE m.published = 1 AND m.parent_id > 0 AND m.client_id = 0
ORDER BY m.lft



SELECT params, element
FROM yua8c_extensions
WHERE state>=0 AND enabled=1 AND type='sef_ext'
Прикрепленные файлы:
gulievizzet
19.11.2013 21:43
хостинг: есть
домен: есть
Кто за деньги в Киеве может помочь с этими запросами из базы данных, готов встретиться, оплатить, но нужна помощь, я в дупля не даю, тот кто создал сайт (ему не интересна поддержка и т.п). В итоге в течении недели все шикарное работает, но раз в неделю бывают жуткие тормоза, на подобии нажимаеш на страницу она грузиться ровно 2-3 мин и т.п.

Вообщем все еще надеюсь на помощь знающих !
Участвовать в общении на этом форуме могут только
зарегистрированные пользователи.

Если вы уже зарегистрированы Вам необходимо войти на форум.

Тема закрыта по истечению срока давности.
Горячая линия
(044)
392 74 33
другие города