Кто поможет оптимизировать запросы к БД чтобы снизить нагрузку на сервер?
| 143 | dizuser | localhost | diz | Query | 91 | Copying to tmp table | SELECT c.*,
IFNULL(u.nickname, 0) as nickname,
IFNULL(u.login, 0) as login,
IFNULL(u.is_deleted, 0) as is_deleted,
IFNULL(p.imageurl, 0) as imageurl,
IFNULL(p.gender, 0) as gender
FROM cms_comments c
LEFT JOIN cms_users u ON u.id = c.user_id
LEFT JOIN cms_user_profiles p ON p.user_id = u.id
WHERE c.published = 1
AND (c.target IN ('mapnews','mapitem','blog','article','palbum','photo','userphoto'))
AND (c.is_hidden=0)
ORDER BY c.pubdate DESC
LIMIT 0, 6 |
| 152 | dizuser | localhost | diz | Query | 34 | Copying to tmp table | SELECT c.*,
IFNULL(u.nickname, 0) as nickname,
IFNULL(u.login, 0) as login,
IFNULL(u.is_deleted, 0) as is_deleted,
IFNULL(p.imageurl, 0) as imageurl,
IFNULL(p.gender, 0) as gender
FROM cms_comments c
LEFT JOIN cms_users u ON u.id = c.user_id
LEFT JOIN cms_user_profiles p ON p.user_id = u.id
WHERE c.published = 1
AND (c.target IN ('mapnews','mapitem','blog','article','palbum','photo','userphoto')
AND (c.is_hidden=0)
ORDER BY c.pubdate DESC
LIMIT 0, 6 |
Сайт сейчас открылся, спустя 2 минуты.
--
В данный момент на вашем сервере больше всего нагрузки создаётся процессом mysql. В нём висит два очень долгих процесса. В текущей ситуации вам необходимо обратиться к разработчику сайта, так как оптимизация настроек базы данных сильного результата не даёт. Нужно оптимизировать запросы к БД, чтобы они не выполнялись на протяжении такого количества времени.
Комменты часто добавляются? тип таблицы MyISAM или InnoDB?, у вас идёт копирование в tmp таблицу при выборке проанализируйте запрос с добавлением ANALYZE до SELECT
Благодарю за ответ… Я не силен в Базах данных )) в этой CMS ...
Комменты часто добавляются? тип таблицы MyISAM или InnoDB?, у вас идёт копирование в tmp таблицу при выборке проанализируйте запрос с добавлением ANALYZE до SELECT
Добавляются боты как пользователи и висят как не активные, наверно и пишут комментарии. Сейчас сижу вручную по одному удаляю этих пользователей, так как cron на удаление неактивных пользователей запускал, но он виснит.
Возможно я выбирал пользователей чтобы их пакетом удалить...
Где мне посмотреть тип таблицы?
Как мне это проанализировать и выяснить что к чему и как снизить нагрузку?
phpmyadmin будет удобно для откладки и для просмотра типа таблиц колонка тип, для понимания логики выборки по трудным запросам используйте ANALYZE, для понимания общей ситуации и поиска запросов которые тормозят выдачу в режиме реал тайм в sql SHOW PROCESSLIST, можно ещё конфиг my.cnf поправить что бы запросы на которые требуется более n-секунд записывались в файл, ну а решив проблемы с не оптимизированными запросами, для поднастройки конфига отлично подойдёт github.com/major/MySQLTuner-perlГде мне посмотреть тип таблицы?
Как мне это проанализировать и выяснить что к чему и как снизить нагрузку?
phpmyadmin будет удобно для откладки и для просмотра типа таблиц колонка тип, для понимания логики выборки по трудным запросам используйте ANALYZE, для понимания общей ситуации и поиска запросов которые тормозят выдачу в режиме реал тайм в sql SHOW PROCESSLIST, можно ещё конфиг my.cnf поправить что бы запросы на которые требуется более n-секунд записывались в файл, ну а решив проблемы с не оптимизированными запросами, для поднастройки конфига отлично подойдёт github.com/major/MySQLTuner-perlГде мне посмотреть тип таблицы?
Как мне это проанализировать и выяснить что к чему и как снизить нагрузку?
Благодарю!
Имхо, самый разумный вариант — обратиться к спецу, здоровее будете. Тем более, что в этом случае спеца и искать не надо (он уже здесь).Как мне это проанализировать и выяснить что к чему и как снизить нагрузку?
Цена вопроса, что нужно для этого?
Меня интересует результат — чтобы сайт работал и не заваливал сервер.
phpmyadmin будет удобно для откладки и для просмотра типа таблиц колонка тип,
тип таблицы MyISAM — с этим разобрался))… спасибо вам...
С остальным так и не понял… куда писать запрос с добавлением ANALYZE до SELECT… как это делается…
Делает это, скорее всего, модуль "Последние комментарии", поэтому для начала, чтобы не заваливать сервер, попробуйте просто отключить этот модуль:
Админка -> Модули -> Последние комментарии
Если этот модуль сильно дорог Вашему сердцу, пишите в личку — подскажу как поменять запрос
Я ж не предлагал вам услуг. Зачем у меня спрашивать цену вопроса?Цена вопроса
Запрос собирает комменты от всех пользователей на все компоненты.
Делает это, скорее всего, модуль "Последние комментарии", поэтому для начала, чтобы не заваливать сервер, попробуйте просто отключить этот модуль:
Админка -> Модули -> Последние комментарии
Если этот модуль сильно дорог Вашему сердцу, пишите в личку — подскажу как поменять запрос
Благодарю, что откликнулись. Нашел этот модуль...
Пока решил не отключать.
По удалял левых пользователей и сделал регистрацию по инвайту.
Понаблюдаю.