将以不同速度增长的表分成他们自己的数据库是一种明智的做法吗?

时间:2011-12-09 17:46:52

标签: mysql database django saas

在我的数据库中,我的表会以不同的速度增长:

  • 相当静态的,我根本不希望增长太多,
  • 中级的,与用户数量及其活动呈线性增长
  • 快速增长的,随着记录数据点的增长而快速增长

随着数据库的增长,我一直在担心维护这个数据库。这是一个平衡的场景:

  • 单个数据库更易于使用,但将来可能会有更高的维护成本
  • 部署应用程序后,可以更轻松地维护多个数据库,但需要更多的R& D时间

您能否根据过去的经验推荐一种或另一种解决方案?

谢谢,

1 个答案:

答案 0 :(得分:3)

我认为数据增长的速度无关紧要。我认为根据映射到现实世界的原因分割数据库更有意义。

例如,通常,我们编写的每个应用程序都有一个数据库。我们有一个营养和成分数据库的数据库,另一个用于职位列表的数据库等。我们这样做是因为我们更容易跟踪哪个数据库影响哪些应用程序。 (换句话说避免混淆。)

但我们确实有一个Common数据库,其中包含在多个应用程序中使用的信息。 (例如公司信息,位置等),以便我们可以避免重复数据删除。 (为什么要在每个数据库中维护一个位置列表)。

我并不是说你应该如何构建数据,但我将其列为良好原因的一个例子,让数据分散在多个数据库中。

除了针对具有不同增长的数据库制定不同的维护计划之外,我看不出基于数据库活动进行拆分的任何理由。

将它们拆分到负载平衡器后面的方法是相同的。一旦部署它们就应该以受控的,预先测试的方式进行维护,而不管表格的增长速度如何......

除非我遗漏了某些内容,否则我认为没有充分的理由,但我认为 没有理由这么做,或者。如果它对您有意义,并简化您的业务流程而不会增加混乱或其他问题,那么它在您的情况下是有意义的,我认为它根本没有任何损害。