2014-06-19 124 views
-1

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

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

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

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

谢谢!

+0

http://blog.stackoverflow.com/2010/11/qa-is-hard-lets-go-shopping/ – Sefam

+0

正如你在工作中看到的,这是八九不离十你的情况决定的主观的问题。要问的一个更好的问题是关于选择一个问题而发生的问题。你现在可能得不到明确的答案。 –

+0

http://stackoverflow.com/questions/21431757/one-dataset-for-each-datatable-or-one-dataset-for-all-datatables – Tom

回答

4

而不是提供您通用优点/缺点(因为一切都取决于所使用的情况下...),我会说,我们倾向于过早地优化系统,同时优化不应该是未来的一个问题,如果整个系统在构建时考虑到重构。

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

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

此外,由于我们处于云计算时代,基础架构应该水平扩展。也就是说,如果您需要更多功能,请添加复制节点并将您的负载分布到多个服务器上,而不是在应用程序级别进行扩展。这可确保您的软件将仍然易于维护和发展,以及良好的解决方案,应该很容易进行扩展,如果您的代码质量,当然,你的预算,以支持增加的负载!

+0

感谢马蒂亚斯,开门见山 –

+0

@GoranJakovljevic没问题,我很高兴这是对您有用! –

相关问题