在Rails应用程序中使用单独的数据库而不是单个数据库更好吗



我的团队正在构建一个应用程序,在一次头脑风暴会议上出现了一个我不确定的问题,所以我想我应该联系Stack Overflow社区以获得更多意见。要点如下:

  • 我们的应用程序为拥有多个用户的组织创建一个帐户。这些用户有帖子和评论
  • 最初的数据库设计是为组织提供一个表,然后每个用户都将通过组织的id进行关联

其中一位开发人员建议,我们为每个组织的帐户使用一个单独的数据库,以在组织之间分离数据并提高性能。我从未见过任何Rails应用程序以这种方式使用多个数据库,我甚至不知道如何在Rails中做到这一点。

我的问题是:

我们会从使用单独的数据库中获得任何好处吗?还是这会给应用程序增加不必要的复杂性

示例

假设有100个组织。每个组织有100个用户。每个用户有100条帖子和100条评论。

通过这些表进行查询会导致性能大幅下降吗?还是拥有100个独立的数据库会很麻烦,并导致比实际情况更多的问题?这是否会导致迁移问题?不同组织之间的模式是相同的。

我不确定这是否是一个足够清楚的问题,所以在回答之前,如果你需要更多信息,请告诉我。

我确实阅读了以下Stack Overflow文章,但它们对我做出这个决定并没有帮助。

  • 单独还是单独的数据库用于单独的客户帐户
  • 每个客户使用一个大型数据库或使用单个数据库
不要这样做。这只会增加不必要的复杂性。

不要在问题成为问题之前对其进行优化。如果您的应用程序到了数据库性能成为巨大瓶颈的地步,那么就解决这个问题。现在,集中精力编写好的、快速的查询

37 Signals刚刚发布了这篇文章,介绍了他们如何通过良好的硬件来避免分片和相关的系统管理开销。

您可以对数据库进行分片,也可以使用各种gem,但根据我的观点,没有必要为您的应用程序创建单独的数据库,但这取决于您,您可以通过各种方式提高数据库性能

最新更新