【发布时间】:2015-10-15 12:56:04
【问题描述】:
我正在使用 Mongo 在 Meteor 中开发一个 Web 应用程序,它将在云上运行。每个用户必须属于一个公司。 每个公司只能访问自己的数据。 每个用户都可以访问自己的数据以及与同一公司的其他用户共享的一些数据。 想象一下 1.000 家公司和每家公司 100 个用户,如果我为整个应用程序使用 1 个 Mongodb 数据库,它的性能和安全性可能会变得非常糟糕。
所以,因为 Mongo 是“无架构和无数据库”,我想我可以定义 1.000 dbs,比如说 db_0001、db_0002、...命名集合,比如任务、消息、...,这样应用程序就可以更高效、更安全(每个公司的代码相同,数据隔离)。
另外,在托管方面(例如使用 Digital Ocean),我认为如果数据库已经原子化,则更容易分发。
这是一个好方法吗?还是我应该不用担心,让托管来完成这项工作?
欢迎提出任何想法。
【问题讨论】:
-
Mongo 在 10 万用户时仍能发挥出色的性能,1000 个数据库实例听起来有点矫枉过正,对我来说扩展性不强。
-
这不是你扩展 Mongodb 的方式;你将为自己创造一个巨大的毛球。首先阅读mongodb.com/mongodb-scale 和那里的链接。有很多关于扩展 Mongo 的优秀在线案例研究。
标签: performance mongodb security meteor digital-ocean