У меня есть приложение, которое должно хранить много разреженных данных.
Все документы разделены на проекты.
Каждый проект имеет свою собственную базу данных, со своими собственными коллекциями и документами, но все на одном сервере..
Теперь я хочу упростить запросы и ссылки по проектам.
Таким образом, я рассматриваю перемещение всех данных в 1 базу данных, и пусть у каждого документа есть поле "проекта", к которому я могу запросить.
Схема базы данных будет выглядеть примерно так:
Project1 (Database)
Task (Collection)
{name: my_task, status: Completed, ...}
Project2 (Database)
Task (Collection)
{name: other_task, status: Started, ...}
Что-то вроде:
SingleDatabase
Task (Collection)
{name: my_task, status: Completed, project: Project1, ...}
{name: other_task, status: Started, project: Project2, ...}
Я предполагаю, что это может иметь некоторые компромиссы производительности с памятью, использованием диска и производительностью записи.
Проблема в том, что я понятия не имею, какбольшое влияние это оказало бы, если бы его вообще стоило делать.
Вопрос заключается в следующем:
Можно ли рассчитать, какое влияние это решение может оказать на сервер?
Что-то вроде: заданные коллекции X, документ X, индексы X ... Сервер будет включенв среднем есть: X / s медленнее записи, X требует больше памяти .. и так далее.