我在看godaddy.com,它說他們提供多達10個MySQL數據庫,但我不知道爲什麼你需要超過1個,因爲一個數據庫可以有多個表。無法將多個數據庫集成到一個數據庫中?有沒有一個更好的或不可行的例子,沒有多個?當你想從他們的目錄或名字中打電話給他們時,你怎麼區分它們?爲什麼需要多個數據庫?
最佳,
我在看godaddy.com,它說他們提供多達10個MySQL數據庫,但我不知道爲什麼你需要超過1個,因爲一個數據庫可以有多個表。無法將多個數據庫集成到一個數據庫中?有沒有一個更好的或不可行的例子,沒有多個?當你想從他們的目錄或名字中打電話給他們時,你怎麼區分它們?爲什麼需要多個數據庫?
最佳,
我想分離問題將是最明顯的答案。以同樣的方式,您可以在面向對象的編程中將所有功能放在一個大型的類中,最好將不相關的信息分開。將頭部圍繞更小的數據塊更容易,未來的開發人員開始認爲表格是相關的,並且以他們從未想過的方式彙總數據。
試想一下,你正在做兩個不同的項目有兩支不同的球隊。也許你不會有一個團隊訪問其他團隊的表格。
每個數據庫中也可以有空間限制,並且每個數據庫都可以配置特定的參數以優化性能。
另一方面,可以分配兩個最終用戶來完成每個整個數據庫的備份,並且您不希望一個用戶做另一個數據庫的備份,因爲他可以在其他位置恢復數據庫並訪問第一個數據庫數據。
我確信在論壇上有一些相當不錯的DBA可以詳細回答這個問題。
將表存儲在不同的數據庫中,這是因爲您可以單獨備份它們。此外,您將能夠控制對不同NT組下的每個數據庫的訪問權限(例如管理員與用戶)。雖然這可以在個別表級別完成,但有時可以授予或拒絕整個數據庫對特定組的訪問。
當您需要在SQL Server中調用它們時,您需要將數據庫名追加到查詢中,如SELECT * FROM [MyDatabase].[dbo].[MyTable]
。
使用單獨數據庫的另一個原因與您是否需要完全事務恢復有關。例如,如果我有一大堆通過導入過程按時間表填充的表,並且從不由用戶填寫,那麼將它們放入單獨的數據庫允許我將恢復模式設置爲簡單,這會減少日誌記錄(當您一次加載數百萬條記錄)。我也不能像每隔15分鐘一樣進行事務日誌備份,就像用戶插入數據時數據庫中的數據一樣。它還可以在需要時使恢復過程更快,因爲數據庫會更小,因此個人花更少的時間來恢復。當整個服務器崩潰時,幫助不大,但如果一個數據庫由於某種原因被損壞,它可能會有很大幫助。如果數據涉及不同的應用程序,則它簡化了安全性,並將數據存儲在分部數據庫中。當然,有時我們有商業數據庫,我們可以向這些數據庫添加表格,因此可能需要一個單獨的數據庫來處理我們想要添加到這些數據的一些事情(例如,我們使用我們的項目管理軟件來做這件事,我們有一個特殊數據庫,我們從PM系統中提取和彙總數據以進行報告,然後寫下我們所有的客戶報告。)
除了喬納森的評論,還記得那句老話:「不要把所有的雞蛋放在一個籃子裏」 。僅僅因爲你可以將單獨的應用程序存儲在單獨的數據庫中,並不意味着這是一個好主意。 – Kane 2010-10-07 11:58:47