是否有理由使用两个数据库?

时间:2009-11-10 02:57:05

标签: mysql database

是因为尺寸? 顺便说一下,大小的限制是什么?

10 个答案:

答案 0 :(得分:8)

使用两个数据库有很多原因,有些是我们想到的:

  1. 大小(其限制由操作系统,文件系统和数据库服务器控制)

  2. 分离数据类型。想象一本像书一样的数据库 - 你不会写一本跨越多个科目的书,你不应该(必然)拥有一个包含多个科目的数据库。所以所有的数据都是以某种方式相关的,你可以将它们保持在一起(即所有表格都与一个网站或应用程序有关)。

  3. 导入/导出 - 如果您可以删除和恢复整个数据库,而不是将单个行导入数据库表,则可能更容易将数据导入应用程序。

答案 1 :(得分:4)

单独的应用程序或服务。我看不出有任何理由为单个应用程序/服务使用单独的数据库。

(注意:复制,即使是多主机,也不是一个单独的数据库。也不是Sharding。)

我相信这里的一些数据库与数据库实例混淆了。

实施例: 电话簿是数据库的主要示例。

复制: 拥有相同电话簿的2份副本并不意味着您拥有2个数据库。这意味着您拥有1个数据库的2份副本,并且您可以将1交给其他人,这样您就可以同时查找不同的内容,从而一次完成更多的工作。

拆分: 您可以在白页末尾和黄色的开头拆开这些电话簿,然后将它们交给另外两个人。你可以在每封信中进一步撕掉它们,当你需要苏珊夏天时,请问那本书那一部分的人要找她。

答案 2 :(得分:2)

我有时会有单独的数据库,因为它们处理不同的问题。 I.E.报告数据库或身份验证数据库。

答案 3 :(得分:1)

假设您要发布或重用某些外部数据库,并将其与主数据库分开。这是使用2个数据库的一个很好的理由......您可以随时删除和重新导入外部数据库,而不会影响您的数据库,反之亦然......

答案 4 :(得分:1)

答案 5 :(得分:1)

为了可靠性,您可以使用两个数据库,这与大多数银行拥有两台ATM的原因相同。如果另一个失败,您可以交换一个,但快速执行此操作需要设置,例如cname并控制您自己的DNS服务器。

如果写入具有复杂的触发器,您也可以对一个数据库进行写入,并使用数据库之间的某些同步来保持第二个数据库更新,这用于选择。

您可以使用两个数据库进行负载共享,例如,使用循环法来分割负载,这样就不会超载。

答案 6 :(得分:1)

  • 通过将数据库系统分配到不同的物理位置来建立系统scalable
  • 提供冗余/复制作为备份和无缝uptime.a

答案 7 :(得分:1)

正如Ben所说,复制是一个原因。另一个是负载平衡。

例如,Hotmail使用许多数据库服务器,客户数据在数据库中被分解。

在一台服务器上拥有所有客户的数据不仅需要大量的存储需求,而且响应时间也会非常糟糕。

在其他情况下,数据可以按功能分开。您可能有两组数据没有连接,或者至少非常松散,在这种情况下,将数据与其余数据分开可能是有意义的。

答案 8 :(得分:0)

还要考虑IO需求。写一个,读另一个。一个具有即时交易需求,一个是“交易”可以排队,一个是高优先级,另一个是“空闲”优先级,& c。很明显,使用正确的硬件和表空间/文件系统布局,大多数情况都可以在单个数据库中实现。

答案 9 :(得分:0)

我认为iPhone上的SQLite数据库限制为50兆字节,但您可以打开几个数据库。