3

我们正在努力重写我们现有的 RIA 并重新设计我们的数据库以重新构建它的设计。现在我们对数据库有两种看法:

(此选项适用于基于 SaaS 的托管。)

1) 每个客户的个人数据库。

2) 所有客户的单一数据库。

我们期待大量的数据,我们的一些客户的数据库大小从 2GB 到 10GB 不等。# 表大约有 100 个。

我能得到一个关于我们应该选择哪个选择的答案吗?

到目前为止,我们还没有考虑 NoSQL 解决方案,但我们计划使用 JPA(Java Persistence API)支持大约 4-5 个数据库,其中包括 MySQL、Postgres、Oracle、MSSQL。

PS:我们可能会利用亚马逊云进行托管。

4

1 回答 1

19

下面是通常应用于这种多租户需求的数据库使用的三种主要技术。您已经指定了其中一些。

  1. 每个租户的单独数据库:
    • 成本非常高,易于维护/定制,易于调整,易于备份,易于编码。
  2. 共享数据库但不同的架构:
    • 与 (1) 相比,成本较低,可能会遇到数据库大小增加、每个租户易于个性化、每个租户难以备份/恢复、易于编码等问题。
  3. 共享数据库共享模式:
    • 成本低,一个租户的负载会影响其他租户,安全和应用程序开发是一个挑战,每个租户难以个性化,难以恢复/备份。

我认为以上几点适用于在本地或云上托管。如果您看到租户数量增加或数据变大,那么 1) 或 2) 会更好。我使用了选项 2) 并看到它有助于开发和维护。

于 2013-03-29T04:28:54.173 回答