为什么实际需要多个DB?

时间:2010-10-07 11:48:40

标签: database database-design

我正在看godaddy.com,它说他们提供多达10个MySQL数据库,但我不知道为什么你需要超过1,因为数据库可以有多个表。不能将多个DB集成到单个DB中吗?有没有一个例子,哪个更好或不可能没有多个?当你想从他们的目录或名字中调用它们时,你如何区分它们?

最佳,

4 个答案:

答案 0 :(得分:2)

我认为关注点的分离将是最明显的答案。以同样的方式,您可以在面向对象编程中将所有功能集中在一个庞大的类中,将非相关信息分开是个好主意。更容易绕过较小的数据块,未来的开发人员可能会开始认为表是相关的,并以他们从未想过的方式聚合数据。

答案 1 :(得分:1)

想象一下,您正在与两个不同的团队进行两个不同的项目。也许你不会有一个团队访问其他团队表。

每个数据库中也可以有一个空间限制,每个数据库都可以配置特定的参数来优化性能。

另一方面,可以分配两个最终用户来为每个整个数据库进行备份,并且您不需要一个用户来备份另一个数据库,因为他可以在其他地方恢复数据库,访问第一个数据库数据。

答案 2 :(得分:0)

我确信论坛上有一些非常优秀的DBA可以详细解答这个问题。

将表存储在不同的数据库中会因为您可以单独备份它们。此外,您将能够控制对不同NT组下的每个数据库的访问(例如,管理员与用户)。虽然这可以在单独的表级别完成,但有时授予或拒绝对特定组的整个数据库的访问权限是有意义的。

当您需要在SQL Server中调用它们时,您需要将数据库名称附加到查询中,如SELECT * FROM [MyDatabase].[dbo].[MyTable]

答案 3 :(得分:0)

使用单独数据库的另一个原因与您是否需要完整的事务恢复有关。例如,如果我有一堆通过导入过程按计划填充的表,而不是用户,则将它们放在一个单独的数据库中允许我将恢复模式设置为简单,这样可以减少日志记录(这是一件好事,当你是一次加载数百万条记录)。我也不能每十五分钟做一次事务日志备份,就像我对用户插入数据的数据库中的数据一样。它还可以在需要时使恢复成为更快的过程,因为数据库会更小,因此个别地恢复时间更短。当整个服务器崩溃时无济于事,但如果由于某种原因导致一个数据库损坏,它可能会有很大帮助。如果数据涉及不同的应用程序,它还可以简化安全性,并将数据存储在separte数据库中。当然有时我们有商业数据库,我们可以添加表格,因此可能需要一个单独的数据库来处理我们想要添加到数据中的一些东西(我们这样做,例如使用我们的项目管理软件,我们有一个spearate数据库,我们从PM系统中提取和汇总数据以进行报告,然后写下我们的所有客户报告。)