2010-10-07 194 views
2

我在看godaddy.com,它说他们提供多达10个MySQL数据库,但我不知道为什么你需要超过1个,因为一个数据库可以有多个表。无法将多个数据库集成到一个数据库中?有没有一个更好的或不可行的例子,没有多个?当你想从他们的目录或名字中打电话给他们时,你怎么区分它们?为什么需要多个数据库?

最佳,

+3

除了乔纳森的评论,还记得那句老话:“不要把所有的鸡蛋放在一个篮子里” 。仅仅因为你可以将单独的应用程序存储在单独的数据库中,并不意味着这是一个好主意。 – Kane 2010-10-07 11:58:47

回答

2

我想分离问题将是最明显的答案。以同样的方式,您可以在面向对象的编程中将所有功能放在一个大型的类中,最好将不相关的信息分开。将头部围绕更小的数据块更容易,未来的开发人员开始认为表格是相关的,并且以他们从未想过的方式汇总数据。

1

试想一下,你正在做两个不同的项目有两支不同的球队。也许你不会有一个团队访问其他团队的表格。

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

另一方面,可以分配两个最终用户来完成每个整个数据库的备份,并且您不希望一个用户做另一个数据库的备份,因为他可以在其他位置恢复数据库并访问第一个数据库数据。

0

我确信在论坛上有一些相当不错的DBA可以详细回答这个问题。

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

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

0

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