mrhard
@mrhard
web разработчик

Как оптимизировать запросы к MongoDB для получения данных в сообщении чата?

Добрый день, уважаемые!
Мы разрабатываем корпоративный мессенджер и встал вопрос об оптимизации данных.

Сейчас все сообщения хранятся в Mysql (id_message, id_user, time_insert, data_json). Каждая «комната» это отдельная таблица на сервере (серверов несколько). В каждой комнате могут быть до 10 000+ сообщений, комнат может быть неограниченное число. В Mysql делаем только запись и чтение, UPDATE, DELETE запрещен.

На стороне клиента по мере поступления сообщений - данные кэшируются и при следующем запросе на новые сообщения мы отправляем последний id сообщения, сервер нам отдает только записи больше этого id (но не больше 100, если система отдала не все сообщения - догружаем последующие после получения и записи в кэш данных).

Встал вопрос об распределении данных между MySQL и MongoDB - в мускуле хотим хранить id_message,id_user,time_insert, mongo_id (оптимизация структуры хранения timeline сообщений) в MongoDB только data_json, т.к. в data_json может быть немаленький объем данных (сообщение, прикрепленные данные: id фото, координаты и вот это все...).

С точки зрения оптимизации MongoDB - записи лучше получать по mongo_id в момент обхода записей из MySQL (до 100 записей, 100 запросов в MongoDB за один запрос) или в момент обхода MySQL собираем массив из записей mongo_id и после делаем один запрос к MongoDB?

MongoDB начал изучать… вчера, поэтому буду рад детальным ответам и советам, может вообще ну его и оставить все в Mysql?
  • Вопрос задан
  • 181 просмотр
Решения вопроса 1
@RidgeA
конечно 1 запрос будет лучше.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
sim3x
@sim3x
Если и переходить с мускула, то явно не на монгу, а на постгрес
Если начали изучать монгу вчера, то вернитесь к данному вопросу лет через 5 активного изучения монги
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы