У меня есть приложение, которое должно хранить много разреженных данных.
Все документы разделены на проекты.
Каждый проект имеет свою собственную базу данных с собственными коллекциями и документами, но все на одном сервере.
Теперь я хочу упростить запрос и ссылку по проектам.MongoDB вычислить компромиссы производительности
Итак, я рассматриваю возможность перемещения всех данных в 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 больше памяти и т. Д.