Нагрузка на базу при определенном кол-ве пользователей и просмотров.

#1 22 июня 2016 в 08:47
Недавно свалился мне на голову большой коллектив с требованием — хотим сайт, общаться. Для этого был выбран движок ICMS2 (до этого работал только с WP). Добавлен кристалчат и коммерческий форум. Т.е. вообщем то сайт не увешан кучей компонентов. Народ активно общается на форуме и в личке. Теперь вопрос — нормально ли, что появилась повышенная нагрузка на базу? (бегет хостинг дает 2500СР, а у меня более 5000СР, хостинг пока лоялен...) Зарегистрированных 100 пользователей генерируют 7..10 тыс просмотров страниц сайта и около 1500 личных сообщений в день.
Техподдержка говорит, такой запрос к базе самый прожорливый:
SELECT i.*, COUNT(i.id) as messages FROM cms_users_messages i WHERE (i.to_id = '21') AND (i.is_new = '1') GROUP BY i.from_id LIMIT 1000\G

Читал про icms что где то там, чтото оптимизируют в запросах, какие то индексы и поля добавляют. Но конкретных действий не указывается. Может у кого то подобная проблема была? Напишите решение, пожалуйста. Базовик я никакой…
#2 22 июня 2016 в 21:10
Сделать из инстанта скайп — это сурово.
Попробуйте повесить индескы сначала на from_id (так как группировка по нему), а потом еще на to_id.
Снять индекс всегда успеется.
#3 22 июня 2016 в 21:26
iiv, скорее всего этот запрос от

кристалчат

iiv

Создайте составной индекс на поля to_id и from_id — порядок полей в индексе важен.
Если уже есть индексы, в которых первое поле to_id — удалите их.
#4 22 июня 2016 в 22:55
Fuze,
Помню, висел сайт на форнексе. Там был график нагрузки по всем параметрам. Причем с мгновенной реакцией.
Так вот включаю чат — нагрузка 100%, выключаю чат — нагрузка 10%.
Выключил чат навсегда.
#5 22 июня 2016 в 22:59
HiAndy, ну ваши выводы насчет чатов в целом скорее неверный стереотип) Грамотно сделанный чат (реалтайм общение) не вызывает нагрузки.
#6 22 июня 2016 в 23:05

Грамотно сделанный чат

Fuze
Ставил неграмотно сделанный чат на аяксе, который дергал базу сто раз в секунду.

Какой чат рекомендуется к использованию разработчиком?
#7 22 июня 2016 в 23:29
HiAndy, вероятно работающий на базе nodejs и иже с ним. Сокеты опять же. Т.к. чаты, работающие

чат на аяксе, который дергал базу сто раз в секунду.

HiAndy
явно будут вызывать нагрузку большую, чем нужно.

Но такие чаты конечно же врятли будут работать на шаред хостингах. А в целом, наверное можно прикрутить API того же Telegram.
#8 22 июня 2016 в 23:41

А в целом, наверное можно прикрутить API того же Telegram.

Fuze
Самый простой вариант notifcaster.com/ можно своего бота запустить, сконектить с сайтом, в канал новости, файлы, общение и тд и тп
#9 23 июня 2016 в 01:56

Создайте составной индекс на поля to_id и from_id — порядок полей в индексе важен.
Если уже есть индексы, в которых первое поле to_id — удалите их.

Fuze

А где то по подробнее можно про это прочитать?
#10 23 июня 2016 в 01:57
Да, добавлю, общий чат в кристалчате выключен…
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.