Есть ли какое-либо влияние на производительность для нескольких баз данных Mon go? - PullRequest
0 голосов
/ 20 января 2020

В настоящее время мы работаем над приложением, использующим пн go, и пытаемся оценить преимущества и ограничения для каждого варианта архитектуры, связанной с распределением данных по нескольким базам данных / коллекциям или с использованием одной общей.

Существуют ли какие-либо потери производительности между одной базой данных с большим количеством коллекций или множеством баз данных с меньшим количеством коллекций на базу данных?

Из того, что я понимаю, это не оказывает никакого влияния, поскольку шардинг сделано для каждой коллекции, но я хотел бы получить некоторые подтверждения.

С уважением

1 Ответ

1 голос
/ 20 января 2020

По производительности, я думаю, вы имеете в виду скорость чтения / записи. Использование нескольких баз данных с меньшим количеством коллекций определенно увеличит вашу скорость чтения / записи, поскольку каждая база данных может обрабатывать больше операций чтения / записи в связанных с ними коллекциях.

Однако распространение данных по базам данных таким образом, я считаю, может создать дополнительную сложность для вашего проекта, в зависимости от того, как структурирована ваша кодовая база, это может усложнить логику вашего приложения c, такие как резервное копирование и другие. Операции с базой данных администратора не будут простыми, перекрестные запросы ad-ho c для коллекции, которая находится в разных базах данных, будут практически невозможны.

Если целью архитектуры является обеспечение высокой скорости чтения / записи, вы все равно можете go использовать одну БД, которую можно автоматически масштабировать на уровне развертывания. Я не знаю много об этом, но я думаю, Репликация - это функция MongoDB, которая может помочь вам достичь такого автоматического масштабирования, и если вы работаете с базой данных как услуга, вы должны проверить MongoDB Atlas , автоматическое масштабирование готово.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...