1

我在工作中继承了一个 Web 应用程序。每次添加用户/帐户时,它都会创建一个新的 MySQL 数据库。每个数据库通常会达到 300mb,但不会更多。在 AWS RDS 上运行的 271 个数据库中,Web 应用程序像糖蜜一样运行。

每个数据库中都有一个表,其中包含 90% 的数据,并且在所有数据库中都包含相同的数据。因此,我可以从这个表中取出数据并放入一个单独的数据库中,让所有帐户也连接到这个数据库。这将大大缩小每个数据库的大小。

但是,我担心它不会加速服务器,因为它上面的数据库太多了。我不是数据库管理员,如果我的思路没有意义,我会提前道歉。但我非常愿意学习。

在这种情况下,我应该尝试缩小数据库的数量还是应该尝试缩小每个数据库的大小?缩小每个数据库的大小真的有帮助吗?

4

2 回答 2

2

我怀疑数据库的数量直接是问题所在。但这是糟糕设计的明显迹象,我敢打赌其他地方也存在问题。例如,许多优化可以在一个表内进行,但不能跨表进行。因此,如果您不断地处理相同类型但保存在不同表中的信息,那将会非常缓慢。

于 2011-10-19T01:50:56.183 回答
0

您应该(认真地)考虑将数据库的数量减少到一个。

每个用户一个数据库的概念是其中一个更……有趣的……我听说过的——那是 Pax 在那里表现出不寻常的机智:-)

缺乏将不同用户彼此分开的某些立法要求,确实没有正当理由这样做。特别是如果您希望您的数据库能够扩展。

300M 乘以 300 个帐户大约是 90G,这仍然是一个相对较小的数据库。

正如你所说,很多信息都是重复的,所以当你合并时它不会接近那个。如果这 300M 中的 90% 是共享的,那么您最终将得到 30M 乘以 300 个帐户加上 270M 共享,或者低于 10G。

我很确定我们的一些配置表比那个大:-)

于 2011-10-19T01:57:43.700 回答