Есть проект. Чем то структура похожа на соц сети. Есть люди, есть группы. Внутри групп можно чатиться. Вопрос как хранить чаты, что бы не особо нагружать сервер.
Я вижу три варианта, может есть еще, помогите выбрать правильный
1. хранить в мускуле
2. для каждой группы отдельный файлик txt, xml или еще что
3. использовать чат от VK и не парить себе мозг
Что выбрать? Чат только текст и без особых функций в виде поиска по истории, атача и т.д.
Хранить все в базе.
Пользователи отдельная таблица, группы отдельная таблица. И используется промежуточная таблица связей между сущностями при реляционных БД и связях "многие-ко-многим"
А месседжи чата по первоначалке можешь хранить в одной таблице. Которую потом можно привязать к промежуточной таблице msgid | user | group
А при реализации бэкенда чата, просто сапоставляешь, какие пользователи принадлежат группе в которой стартанул чат. https://habrahabr.ru/post/193380/
Как это хранить в мускуле я догадываюсь. Я переживаю не умрет ли он скажем при 100k пользователях в день, которые постоянно пишут. База начнет наполняться просто с астрономическими темпами. Тут чат не просто фигня слева в сайдбаре, он будет востребован.
hbuser: Задача тривиальная. Наверняка уже многие щупали. Вот решил найти таких людей. Интересен именно собственный опыт. Ибо варианты как сделать у меня есть и методы измерений, но смысл этим заниматься, если наверняка есть кто-то кто это уже делал.
Максим Тимофеев: Вы сначала поднимите, проведите нагрузочное тестирование, а уже там и видно будет умрет ли он. Есть куча вариантов оптимизации..И да, два чая автору выше.
100к пользователей в день, это не более 40-50к/м запросов в пике относительно чата. Что совсем немного.
Christian Lisov: "100к пользователей в день, это не более 40-50к/м запросов в пике относительно чата. Что совсем немного." -вот это уже похоже на ответ. Спасибо.