两种情况:
大型应用程序 - 一个包含所有表的数据库
或
大型应用程序 - 具有相关表格的多个数据库
任何人都可以列出优点/缺点吗?
答案 0 :(得分:5)
除非您有特殊原因,否则请将所有内容保存在一个数据库中。我想不出将单个模式固定到多个DB中的单一优势。
一个数据库创建一个恢复单元,允许一致的备份。它还提供了一个单一的故障转移单元,以实现高可用性。对于多个数据库,除非冻结活动(通常是不可能的),否则无法进行一致的备份。在发生故障时,多个数据库也会在协调“组”故障转移方面带来挑战(某些DB可能会故障转移到新服务器,而其他数据库可能会留下来)。
多租户模型在多租户模型中提供了优势,其中每个租户都可以拥有自己的数据库,特别是如果租户可以选择或选择加入版本升级(单个数据库是不可能的)。但是这是一个场景,许多数据库具有相同的模式(每个数据库中都有相同的表),而不是在多个数据库之间拆分模式。
通过数据分区(分片)进行扩展只能通过拥有多个数据库来实现,但这与将数据库拆分为“部分”(每个具有不同模式的数据库)不同。碎片具有相同的模式,但包含特定范围的数据。