所以,今天我们在公司项目负责人和程序员之间进行了长时间的对话,我们是否应该为我们的新项目运行一个包含所有表的数据库,或者运行多个数据库,每个数据库存储一组模块。
项目是关于商店,我们有单独的(让我们称之为模块),如用户,付款方式,产品,统计数据。
现在一方说我们应该把它全部放在一个DB(它的标准程序)中,因为它会更快,一个查询就可以得到所有数据,而另一方说我们应该在多个数据库之间拆分它它更安全,如果有人违反了内部产品,他们就不会看到用户表,因为该数据库将位于不同的服务器或虚拟机上。
所以我的问题是,拥有多个数据库的所有数据VS拥有单个数据库的优缺点是什么。我读了几个关于堆栈溢出的问题,但没有一个是关于利弊的。如果有多个数据库较慢,如何加快速度?
谢谢!
答案 0 :(得分:4)
与其为您提供通用优缺点(因为一切都取决于用例...),我会说我们倾向于过早地优化系统,而优化不应该成为未来的问题,如果整个系统的构建都考虑了重构。
恕我直言,我前段时间进行了同样的讨论,我的结论是从一个数据库开始。它简化了很多细节:此外,由于我们处于云计算时代,基础设施应该横向扩展。也就是说,如果您需要更多功能,请添加复制节点并在多个服务器之间分配负载,而不是在应用程序级别进行扩展。这样可以确保您的软件仍然易于维护和开发,如果您的代码具有高质量,并且当然您已预算足以支持增加的负载,那么良好的解决方案应该可以轻松扩展!