2

我正在帮助客户将 PHP/MySQL 应用程序迁移到 AWS。我们遇到的一个问题是,他们构建了这个应用程序以使用大量数据库。他们为每个用户创建一个新的数据库(具有相同的架构)。他们希望拥有数以万计的用户。

我不太了解 MySQL,但这种设置对我来说似乎一点也不好。我唯一的猜测是开发人员这样做是为了避免使用包含大量数据的表。但是我只能想到缺点(维护这个系统将是一场噩梦,很难扩展,难以扩展等)。

无论如何,这种模式在 MySQL 社区中是否普遍使用?有什么好处,如果有的话?

我试图说服他们应该重新构建数据库架构。

* [编辑] *

与此同时,我们知道这种方法的另一个缺点。我们最初打算使用 Amazon RDS 进行数据存储。但是,RDS 目前每个实例最多支持 30 个数据库。所以不幸的是,现在排除了RDS。RDS 有这个限制的事实已经很能说明问题了,我的解释是拥有如此大量的数据库并不是 MySQL 的常见做法。

谢谢!

4

2 回答 2

3

这是我读过的最可怕的想法之一(而且我读过很多)。因为一旦数据库的数量不能像数据库中的表那样扩展,那么就不可能将用户相互连接起来,或者至少无法共享共同的属性和选项。它本质上违背了数据库本身的目的。

我的建议超出了最初的范围:您的直觉比您想象的要了解更多,请多听!

于 2013-07-03T22:04:28.637 回答
0

这个想法对我来说也很奇怪!毕竟,数据库旨在处理大型数据集!如果确实担心数据量,通常更好的做法是将表分离到不同的数据库中 - 托管在不同的物理服务器上,因为这允许您将数据库级进程分布在硬件上以提高性能

此外,我不知道他们打算如何托管此应用程序,但许多托管服务提供商会按数据库实例向您收费!

这会给您带来的另一个问题是它会使报告变得更加困难 - 我不想尝试在查询中包含来自 10,000 个数据库的表!

于 2013-07-03T22:25:49.637 回答