mongodb - MongoDB多个集合或多个数据库
问题描述
我们正在使用 .net Core 和 node.js 微服务,其中一些与 mongoDB 一起使用。
目前我们得到以下数据库结构:
每个客户都有自己的数据库。因此,如果我们为 Invoices 提供微服务,每个新客户都会为该微服务添加 1 个新数据库。
Invoice_customerA
Invoice_customerB
etc...
虽然每个这样的数据库中的集合保持不变(通常我们在每个数据库中有 1-3 个集合)
在逻辑方面 - 我们在运行时通过请求输入来选择正确的数据库。
我现在正在考虑对其进行一些更改,以开始对集合进行分离:
因此,如果我们以这次之前的相同示例为例,此 Invoice Service 将只有 1 个 DB,
Invoice_allCustomers
并且其中的每个客户将有 1 个新集合(如果此服务有更多集合,则更多)。
collection_customerA
collection_customerB
我想了解的是,性能方面是否有任何差异?或者它主要是一种“化妆品”变化?或者也许还有其他一些考虑?
PS 如果更改主要是装饰性的,我认为新的解决方案对我们来说更好,因为我们通常每个微服务只有 1-2 个集合。当数据库显着减少时,导航会更容易。
解决方案
据我所知,在微服务中,每个服务都应该有自己的数据库。如果它不是一项不同的服务,那么您可以使用其中包含不同集合的一个数据库。它更多的是外观上的变化,但我也应该警告你,mongodb 仍然有它的限制,你可以在这里找到。这实际上取决于将存储和检索的数据量。
推荐阅读
- google-apps-script - 谷歌表格 - 通过匹配值搜索/替换
- mysql - 使具有多个存在条件的 if 语句在 true 时插入
- ignite - 关于 Ignite 中的集群配置
- c++ - 将空源文件添加到 STATIC 库的原因?
- html - 拖动时项目的内容布局中断
- asp.net-core - 在 blazor 中相互交换 div / 组件的位置
- angular - 在 TypeScript 中为生成的代码禁用警告
- android - SupportMapFragment 正在泄漏内存
- python - 如何使用结构嵌套数组 pyspark 更改数据框列中的属性?
- windows - 安装open km不成功