我想创建多个数据库,并在其中的每个维护一个表的数量(即100个数据库,每个包含60个表)。我的应用程序将拥有知道要访问哪个DB和Table来查找所需数据的基础结构。每个表的内容不会超过200条记录,但我希望能够将数据分散到多台机器上,以实现可伸缩性。
在开发像使用mysql这样的分布式系统时,需要记住的重要问题是什么?我可以在哪里阅读以了解有关设置此类系统的更多信息?
发布于 2011-01-04 22:21:24
这是一本很棒的书:
通常情况下,最弱的数据库才是最强大的。如果其中一个的性能下降,那么它通常会锁定web请求。确保对您的数据库运行状况和webapp运行状况进行良好的监控
每个表200条记录(取决于字段和索引的数量)是一个非常小的表大小。这表明你应该回到设计的绘图板上。
要跟上100个数据库太多了。如果你走这条路,一切都是自动化的!也就是说,除非你有数十亿条记录,否则你不需要这个。
基于你提供的信息,我建议放弃你的设计,寻找更简单的东西。如果他们的外部限制需要这样做,那么请雇用一个具有mysql dba技能的运营人员;您所描述的是每周10 - 20小时的承诺。
发布于 2011-01-04 23:12:59
根据表和记录的数量,我还建议重新考虑您的方法。考虑到水平可伸缩性的设计是值得称赞的,但考虑到数据数量,您最好只有一台DB服务器,优化后将整个数据集保存在RAM中(外加另一个节点,使用主从复制进行故障转移),并且您将能够跟上大量的流量。
除此之外,基于我对您的应用程序的一些了解,我不建议将您的数据拆分到那么多数据库和表中。当然,您可以在应用程序中编写您想要的任何逻辑,以确保它知道在哪里查找内容,但您将失去SQL的大量功能,因为您将无法直接使用纯SQL组合来自不同数据库的数据。
https://stackoverflow.com/questions/4593495
复制相似问题