一个数据库或多个数据库

时间:2014-06-19 18:29:47

标签: php mysql sql database hierarchical-data

所以,今天我们在公司项目负责人和程序员之间进行了长时间的对话,我们是否应该为我们的新项目运行一个包含所有表的数据库,或者运行多个数据库,每个数据库存储一组模块。

项目是关于商店,我们有单独的(让我们称之为模块),如用户,付款方式,产品,统计数据。

现在一方说我们应该把它全部放在一个DB(它的标准程序)中,因为它会更快,一个查询就可以得到所有数据,而另一方说我们应该在多个数据库之间拆分它它更安全,如果有人违反了内部产品,他们就不会看到用户表,因为该数据库将位于不同的服务器或虚拟机上。

所以我的问题是,拥有多个数据库的所有数据VS拥有单个数据库的优缺点是什么。我读了几个关于堆栈溢出的问题,但没有一个是关于利弊的。如果有多个数据库较慢,如何加快速度?

谢谢!

1 个答案:

答案 0 :(得分:4)

与其为您提供通用优缺点(因为一切都取决于用例...),我会说我们倾向于过早地优化系统,而优化不应该成为未来的问题,如果整个系统的构建都考虑了重构。

恕我直言,我前段时间进行了同样的讨论,我的结论是从一个数据库开始。它简化了很多细节:

  • 单个数据库备份,维护较少。
  • 您不需要管理多个连接。
  • 多个数据库可以破坏执行原子事务的机会,这是我永远不会丢弃的功能。
  • 您避免同步两个或多个数据库以避免完整性问题。

此外,由于我们处于云计算时代,基础设施应该横向扩展。也就是说,如果您需要更多功能,请添加复制节点并在多个服务器之间分配负载,而不是在应用程序级别进行扩展。这样可以确保您的软件仍然易于维护和开发,如果您的代码具有高质量,并且当然您已预算足以支持增加的负载,那么良好的解决方案应该可以轻松扩展!