代码之家  ›  专栏  ›  技术社区  ›  laptou

何时将数据存储在MongoDB中的不同数据库中[重复]

  •  0
  • laptou  · 技术社区  · 5 年前

    我们的应用程序在一个数据库中需要5个集合。当我们向应用程序添加客户机时,我们希望为每个客户维护单独的数据库。例如,如果我们有500个客户,我们将有500个数据库和2500个集合(每个数据库有5个集合)。这样我们可以分离每个客户的数据。我担心的是,会不会导致性能问题?

    更新: 也遵循这一点 google-group discussion .

    0 回复  |  直到 7 年前
        1
  •  51
  •   Asya Kamsky    11 年前

    我们的应用程序在一个数据库中需要5个集合。当我们把客户添加到 在我们的应用程序中,我们希望为每个 顾客。例如,如果我们有500个客户,我们就有500个数据库 2500个集合(每个数据库有5个集合)。这样我们可以

    这是个好主意。除了为您提供的逻辑分离之外,您还可以使用MongoDB中的数据库级安全性来帮助防止无意中访问其他客户的数据。

    我担心的是,会不会导致性能问题?

    切分还允许轻松扩展,因为您甚至不必对任何集合进行分区—您只需在多个切分之间循环使用数据库,就可以将负载分配到单独的集群(如果达到该级别)。

    与另一个答案中的声明相反,TTLMonitor线程不会将文档拉入RAM,除非它们被删除(并添加到自由列表)。它们利用TTL索引来判断是否有文档要过期,以及直接定位文档。