mysql一个或多个数据库?

时间:2017-10-20 15:29:45

标签: mysql database database-design

我一直在寻找使用MySQL建模数据库的答案,但无法找到它。

最佳做法是什么,建模1个数据库和所有表格& 1个存储库中的数据,还是分成多个数据库来处理模块之类的每个东西?

例如,我有一个包含55个表的项目,并且在我使用php开发域中的服务时会更多;到目前为止,还启动了另外22个表的项目。对于两者,我使用不同的用户登录,信息和数据;并且喜欢6或10张桌子和关系是按布局组织的(感谢MySQL方案支持这一点)。但是,如果我将两个用户句柄分成一个外部数据库并用这个处理两个数据库呢?

我想象一下,如果我将所有布局拆分到其他数据库中,那将是用PHP编程的噩梦(用了几个月并且有很多进步)但很容易进行维护。我是对的吗?

1 个答案:

答案 0 :(得分:1)

除非您有特定理由违反该规则,否则您应该只使用一个数据库和一个数据库。有效理由的例子包括:

  • 您有一个多租户应用程序,并且此应用程序的实例不共享数据,因此您将它们分散到多个数据库中以消除单点故障。即使这样,这些实例也只是同一基本模式的克隆。
  • 出于性能原因或由于无法以任何其他方式以经济有效的方式解决的存储限制,您需要跨多个实例对数据进行分片。这些分片共享一个模式,但只是完整数据集的一部分。
  • 您需要为数据仓库和/或报告原因创建副本或衍生数据集。这些实例可能具有完全不同的模式,因为它们是围绕读取活动进行优化的,而不是写入。

除非你正在做一些真正涉及的事情,推动MySQL的极限,坚持使用一个数据库。您的开发人员会很感激。

对于一个非平凡的应用程序,五十,六十个表并不是很多表。有些应用程序有数百个,但有正确的命名约定和良好的文档,这不是问题。一个好的命名系统意味着您可以快速搜索您想要的内容,并通过Tab键依靠自动完成功能,直接到达您想去的地方。