Техподдержка говорит, такой запрос к базе самый прожорливый:
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 что где то там, чтото оптимизируют в запросах, какие то индексы и поля добавляют. Но конкретных действий не указывается. Может у кого то подобная проблема была? Напишите решение, пожалуйста. Базовик я никакой…
Попробуйте повесить индескы сначала на from_id (так как группировка по нему), а потом еще на to_id.
Снять индекс всегда успеется.
кристалчат
Создайте составной индекс на поля to_id и from_id — порядок полей в индексе важен.
Если уже есть индексы, в которых первое поле to_id — удалите их.
Помню, висел сайт на форнексе. Там был график нагрузки по всем параметрам. Причем с мгновенной реакцией.
Так вот включаю чат — нагрузка 100%, выключаю чат — нагрузка 10%.
Выключил чат навсегда.
Ставил неграмотно сделанный чат на аяксе, который дергал базу сто раз в секунду.Грамотно сделанный чат
Какой чат рекомендуется к использованию разработчиком?
явно будут вызывать нагрузку большую, чем нужно.чат на аяксе, который дергал базу сто раз в секунду.
Но такие чаты конечно же врятли будут работать на шаред хостингах. А в целом, наверное можно прикрутить API того же Telegram.
Самый простой вариант notifcaster.com/ можно своего бота запустить, сконектить с сайтом, в канал новости, файлы, общение и тд и тпА в целом, наверное можно прикрутить API того же Telegram.
Создайте составной индекс на поля to_id и from_id — порядок полей в индексе важен.
Если уже есть индексы, в которых первое поле to_id — удалите их.
А где то по подробнее можно про это прочитать?