MySQL - 使用具有相同模式的多个DB而不是一个大型DB

时间:2013-07-03 21:55:05

标签: mysql database

我正在帮助客户将PHP / MySQL应用程序迁移到AWS。 我们遇到的一个问题是他们已经构建了这个应用程序来使用大量的数据库。他们为每个用户创建一个新的DB(具有相同的模式)。他们希望有成千上万的用户。

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

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

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

* [编辑] *

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

谢谢!

2 个答案:

答案 0 :(得分:3)

这是我读过的最可怕的想法之一(我读过很多)。一旦数据库的数量不像数据库中的表那样扩展,另一方面就不可能将用户彼此连接或者至少共享共同的属性和选项。它基本上违背了数据库本身的目的。

我的建议远非原始范围:你的直觉比你想的更多,听得更多!

答案 1 :(得分:0)

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

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

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