将所有表放入一个数据库 - 好或坏

时间:2011-06-29 03:29:11

标签: sql database database-design

两种情况:

大型应用程序 - 一个包含所有表的数据库

大型应用程序 - 具有相关表格的多个数据库

任何人都可以列出优点/缺点吗?

1 个答案:

答案 0 :(得分:5)

除非您有特殊原因,否则请将所有内容保存在一个数据库中。我想不出将单个模式固定到多个DB中的单一优势。

一个数据库创建一个恢复单元,允许一致的备份。它还提供了一个单一的故障转移单元,以实现高可用性。对于多个数据库,除非冻结活动(通常是不可能的),否则无法进行一致的备份。在发生故障时,多个数据库也会在协调“组”故障转移方面带来挑战(某些DB可能会故障转移到新服务器,而其他数据库可能会留下来)。

多租户模型在多租户模型中提供了优势,其中每个租户都可以拥有自己的数据库,特别是如果租户可以选择或选择加入版本升级(单个数据库是不可能的)。但是这是一个场景,许多数据库具有相同的模式(每个数据库中都有相同的表),而不是在多个数据库之间拆分模式。

通过数据分区(分片)进行扩展只能通过拥有多个数据库来实现,但这与将数据库拆分为“部分”(每个具有不同模式的数据库)不同。碎片具有相同的模式,但包含特定范围的数据。