是否是因为大小的原因?顺便问一下,尺寸限制是多少?
使用两个数据库有很多原因,一些常见的原因如下:
大小受操作系统、文件系统和数据库服务器的控制。
区分数据类型。把数据库想象成一本书——你不会写一本跨越多个主题的书,也不应该(必须)拥有一个包含多个主题的数据库。只要所有数据以某种方式相关联,你就可以将它们放在一起(例如,所有表都与一个网站或应用程序有关)。
导入/导出——如果您可以丢弃并还原整个数据库而不是导入数据库表中的单个行,则将数据导入应用程序可能更容易。
将单个应用程序或服务分开。我看不出使用单个应用程序/服务的分开数据库的任何理由。
(注意:复制,即使是多主复制,也不是单独的数据库。Sharding 也不是。)
我认为这里有些人混淆了数据库和数据库实例。
例如: 电话簿是数据库的一个典型例子。
复制: 拥有相同电话簿的两份副本并不意味着您拥有两个数据库。这意味着您拥有1个数据库的2个副本,并且您可以将其中一个交给其他人,以便您可以同时查找不同的内容,从而一次完成更多的工作。
Sharding: 您可以在白页末尾和黄页开始处将这些电话簿分开,并将它们交给另外两个人。您还可以在每个字母处进一步撕开它们,当您需要Susan Summers时,请让那个拥有该部分电话簿的人查找她。
假设您想要发布或重用某个外部数据库,并将其与您的主数据库分开。这是使用两个数据库的好理由...您可以随时删除和重新导入外部数据库,而不会影响您的数据库,反之亦然...
为保证数据的可靠性,你可以使用两个数据库,就像大多数银行有两个ATM一样。如果一个数据库出现问题,你可以切换到另一个,但是为了快速进行切换,需要进行设置,比如CNAME和控制自己的DNS服务器。
如果写入操作带有复杂触发器,则可以在一个数据库上执行写入操作,并使用一些同步方式将更新同步到第二个数据库,第二个数据库则用于查询。
你还可以使用两个数据库进行负载均衡,例如使用轮询算法分配负载,以便不会有一个数据库负载过重。
有时我会使用单独的数据库,因为它们处理不同的问题。例如,报告数据库或身份验证数据库。
正如Ben所提到的,复制是原因之一。另一个原因是负载均衡。
例如,Hotmail使用许多数据库服务器,并且客户数据分散在这些数据库中。
如果将所有客户的数据放在一个服务器上,不仅需要大量的存储空间,而且响应时间也会非常慢。
在其他情况下,数据可能会按功能分开。你可能会有两组数据,它们没有联系,或者至少联系非常松散,在这种情况下,将该数据与其他数据分开可能是有意义的。
我认为iPhone上的SQLite数据库大小限制为50兆字节,但您可以打开多个数据库。