gpt4 book ai didi

MongoDB 性能 - 拥有多个数据库

转载 作者:IT老高 更新时间:2023-10-28 11:07:03 24 4
gpt4 key购买 nike

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

UPDATE: Also follow this google-group discussion.

最佳答案

Our application needs 5 collections in a db. When we add clients to our application we would like to maintain separate db for each customer. For example, if we have 500 customers, we would have 500 dbs and 2500 collections (each db has 5 collection). This way we can separate each customer data.

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

My concern is, will it lead to any performance problems?

不,实际上它会有所帮助,因为一个客户的数据库级锁非常严重的锁争用(如果在您的场景中可能的话)不会影响另一个客户的性能(如果他们竞争同一个客户,它仍然可能)/O 带宽,但如果您使用 --directoryperdb 选项,那么您可以将这些数据库放置在单独的物理设备上。

分片还可以轻松扩展,因为您甚至不必对任何集合进行分区 - 您可以跨多个分片循环数据库,以允许将负载分配到单独的集群(如果以及何时达到该级别) .

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

我强烈建议不要使用一个数据库多集合解决方案,因为它不允许您对负载进行分区,也不能提供安全性,而且在应用程序端也不容易处理。

关于MongoDB 性能 - 拥有多个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16916903/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com