【问题标题】:MongoDB + Web App: Database per userMongoDB + Web App:每个用户的数据库
【发布时间】:2012-01-24 20:14:51
【问题描述】:

我正在为个人项目评估 MongoDB。我正在组建一个网站,允许用户在我的服务器上注册和存储信息。

在评估 MongoDB 时,我看到它可以在第一次插入记录时动态创建数据库。这让我想到我可以将每个用户的数据分离到他们自己的数据库中。数据库名称将从用户的唯一 ID 派生。用户注册后,他们第一次存储信息时,他们的数据库将被创建。

有谁知道这是否是 MongoDB 的可行设计?将所有用户的数据简单地存储在一个数据库中会更好吗?

【问题讨论】:

  • 为什么不使用下一个较低级别的集合?每个用户的单个数据库对我来说似乎有点开销。为什么 - 通常 - 分解不同商店中的用户数据?在大多数情况下,您按类型而不是所有权来分隔数据,不是吗?
  • MongoDB 2.2.0 引入了数据库级锁定。如果您为每个用户存储不同类型的文档(它们会有自己的集合),那么每个用户的数据库可能仍然可行。如果您使用许多数据库,请不要忘记:mongodb.org/display/DOCS/…

标签: mongodb nosql


【解决方案1】:

是的,单个集合更好,这样您就可以利用索引来发挥自己的优势。

遍历数据库或集合列表总是需要 O(N) 时间,而使用索引查找单个文档可能需要 O(log N) 时间。

【讨论】:

    猜你喜欢
    • 2019-06-11
    • 2020-08-03
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 2011-09-08
    • 2021-08-21
    • 1970-01-01
    • 2016-01-09
    相关资源
    最近更新 更多