我的团队正在构建一个应用程序,在头脑 Storm session 期间出现了一个我不确定的问题,所以我想我应该联系 Stack Overflow 社区以获得更多意见。这是它的要点:
- 我们的应用程序为拥有多个用户的组织创建了一个帐户。这些用户有帖子和评论。
- 最初的数据库设计是为组织创建一个表,然后每个用户都与组织的
id
相关联。
其中一位开发人员建议我们为每个组织的帐户使用一个单独的数据库,以分离组织之间的数据并提高性能。我从未见过任何以这种方式使用多个数据库的 Rails 应用,我什至不确定如何在 Rails 中做到这一点。
那么我的问题是:
我们是否会从使用单独的数据库中获益,或者这是否会给应用程序增加不必要的复杂程度?
例子
假设有 100 个组织。每个组织有 100 个用户。每个用户有 100 个帖子和 100 个评论。
通过这些表进行查询是否会成为主要的性能消耗,或者拥有 100 个单独的数据库是否会变得笨拙并导致更多的问题而不是值得的?这会导致迁移问题吗?架构在组织之间是相同的。
我不确定这个问题是否足够清楚,所以如果您在回答之前需要更多信息,请告诉我。
我确实阅读了以下 Stack Overflow 文章,但它们确实没有帮助我做出这个决定。
最佳答案
不要这样做。它只会增加一定程度的不必要的复杂性。
不要在问题成为问题之前对其进行优化。如果您的应用程序达到数据库性能成为巨大瓶颈的地步,请解决该问题。现在,专注于编写好的、快速的查询
刚刚发布了 37 个信号 this article关于他们如何利用良好的硬件设法避免分片和相关的系统管理开销。
关于ruby-on-rails - 在 Rails 应用程序中使用单独的数据库而不是单个数据库更好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9083913/