#mysql #laravel #cassandra #nosql #amazon-dynamodb
#mysql #laravel #кассандра #nosql #amazon-dynamodb
Вопрос:
Я хочу проконсультироваться с вами
Если у меня есть встроенный проект Laravel и я хочу добавить функцию обмена сообщениями, которая будет иметь большой трафик, я подумал, что использование базы данных NoSQL с базой данных MySQL может быть лучше для базы данных MySQL во многих отношениях, например:
- Освобождение хранилища (поскольку данные, которые будут храниться в MySQL, — это только сообщение пользователя)
- Уменьшение трафика в базе данных MySQL
Так я прав?
Это лучшая практика?
И если да, то какую службу БД вы рекомендуете?
Я провел поиск по этому вопросу (DynamoDB, Firebase, Cassandra), прочитал об их плюсах и минусах и хочу воспользоваться советом 😊
Заранее спасибо
Комментарии:
1. Ваш вопрос не совсем ясен. Какие сообщения вы пытаетесь реализовать? Речь идет о рассылке или просто уведомлениях? Зачем вам нужна БД для участия в обмене сообщениями? Для уведомлений приложений у вас есть широковещательная трансляция и Laravel echo. Для массовой рассылки вам, вероятно, понадобится сторонний API. Для push-уведомлений существует множество сервисов, таких как Firebase. Но опять же, ваша цель совсем не ясна
2. Моя цель — сохранить сообщения для резервного копирования истории
3. Но, как я уже сказал, я думаю о большом трафике хранилища и базы данных, поэтому я подумываю о создании другой базы данных, в которой хранятся операции с сообщениями
4. На первый взгляд, я бы сказал вам «использовать одну и ту же БД» из-за целостности БД и производительности запросов. Предполагая, что ваша таблица сообщений имеет FK для владельца, и вам нужно получить все сообщения от определенного пользователя, вам нужно будет получить таблицу пользователей из базы данных A и объединить сообщения из базы данных B. Что делать, если вы удалите пользователя из DB A? Все ваши сообщения из DB B станут сиротами. Я думаю, что это зависит в основном от вашей бизнес-логики, но некоторые пакеты, такие как spatie / laravel-activitylog, отслеживают всю активность, что подразумевает миллионы записей, в одной и той же БД без каких-либо проблем.