我想创建多个数据库,并在每个数据库中维护一定数量的表(即100个数据库,每个数据库持有60个表)。我的应用程序将具有基础结构,以了解要访问哪个数据库和表以查找所需的数据。每个表的内容不会超过200条记录,但我希望能够在多台机器上传播数据以实现可扩展性。
在开发像使用mysql这样的分布式系统时,要记住哪些重要问题?我在哪里可以阅读以了解有关设置此类系统的更多信息?
答案 0 :(得分:2)
这是一本很棒的书:
通常,您的功能与最弱的数据库一样强大。如果一个的性能变慢,那么它通常会锁定Web请求。确保为您的数据库运行状况和您的webapp运行状况提供良好的监控
每个表200个记录(取决于字段和索引的数量)是一个非常小的表大小。这表明你应该按照你的设计回到绘图板。
100个数据库需要跟上。如果你走这条路,自动化一切!话虽这么说,除非你有数十亿条记录,否则你不需要这个。
根据您提供的信息,我建议您删除设计并寻找更简单的信息。如果他们是需要这个的外部约束,那么聘请具有mysql dba技能的操作人员;你所描述的是每周10-20小时的承诺。
答案 1 :(得分:0)
根据表格和记录的数量,我还建议您重新考虑您的方法。考虑到水平可扩展性的设计是值得称道的,但考虑到数据计数,您可能最好只拥有一个数据库服务器,经过优化以将整个数据集保存在RAM中(另外一个节点具有主从复制以进行故障转移)而且你将能够跟上很多流量。
除此之外,基于我对您的应用程序了解的一些小事实,我不建议在这么多的数据库和表中分割您的数据。当然,您可以在应用程序中编写您想要的任何逻辑,以确保它知道在哪里找到东西,但是您将失去很多SQL的强大功能,因为您将无法使用纯粹的方法直接组合来自不同数据库的数据SQL。