gpt4 book ai didi

Mongodb SaaS 单数据库与多数据库

转载 作者:搜寻专家 更新时间:2023-10-30 20:58:16 25 4
gpt4 key购买 nike

我知道这个问题之前已经发布过,但没有得到彻底的回答。另外我认为它仍然取决于问题参数。假设您的 SaaS 服务有很多客户,但每个客户的数据量相对较少,那么拥有一个数据库可能是有意义的。

如果您的客户长期不在数千个范围内(例如,在非常好的情况下为 100 个)并且从 5 到 6 个开始,但您每个客户有大量数据 这次(例如,聚合和处理大量数据的商业智能服务)。给你一个提示,最初每个客户需要处理 25-50GB 的数据(分析和其他东西),作为开始,然后每年每个客户增加大约 10GB。

如果您沿着单一数据库的路径前进,那么您将数据标记为具有特定字段(当然是索引)的客户,然后依赖于复制和分片 系统,由于 mongo,它非常简单。我假设(尚未测试,如果您有这种情况,请分享一些见解)在针对索引字段的分片集合中,查询查找时间应该很快。但是,假设您现在添加另一个客户,另外 50 GB(分布在 8 - 10 个集合中,因此有数百万个项目/集合)。您要么必须:1)删除索引并重建它们(我想那是最糟糕的因为系统变得几乎无法使用)2)不要删除和插入索引(这将永远需要),系统将响应3)我会认为在副本集中取下一个节点,删除索引,更新新客户,带回索引然后让它加入副本集以便它们可以开始同步。

另一方面,如果您每个客户一个数据库,添加或删除可以相对快速地完成,因为系统实际上隔离了它的客户,行仍然在数百万的范围内,但是不接近十亿,这很好而且查找时间显然很快。无论您在这种情况下做什么,在实现方面都更加容易和快捷,因为与单个数据库相比,您将始终使用相对较小的数字。然而,当涉及到维护(复制和分片,因为您将不断为每个客户添加更多数据)时,它肯定会成为一个摩擦另外,在这种情况下,我可能会假设您必须在单独的机器/实例中物理隔离数据库,因为打开文件数量的操作系统限制,当然,由于多个数据库中的多个同时连接,会有额外的开销。

如果我遗漏了什么,请说明,但我最想听听其他对此的意见......

谢谢

最佳答案

如果您停留在数百个客户中,我建议每个客户使用 DB,如果您期望有更多的客户,我建议使用每个客户的集合。 (有一些每个数据库的开销,您不希望为数千个数据库招致这些开销。)

请注意您的想法,“我会认为在副本集中取下一个节点,删除索引,更新新客户,带回索引,然后让它加入副本集,以便它们可以开始同步。”将工作,因为在副本集中只有主节点可以写入。

关于Mongodb SaaS 单数据库与多数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13469522/

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