輕松掌握向外擴展數據庫系統的兩個選項

發表于:2009-10-12來源:作者:點擊數: 標簽:數據庫系統選項
輕松掌握向外擴展數據庫系統的兩個選項 數據庫設計 關鍵字:外擴展數據庫系統本文說明向外擴展數據庫系統的兩個選項,從而實現更高的可擴展性:水平數據劃分和垂直數據劃分。 水平數據劃分 使用水平數據劃分,數據庫結構在數據庫實例方面沒有變化。通常,數

輕松掌握向外擴展數據庫系統的兩個選項   數據庫設計

關鍵字:外擴展數據庫系統本文說明向外擴展數據庫系統的兩個選項,從而實現更高的可擴展性:水平數據劃分和垂直數據劃分。 



水平數據劃分 



使用水平數據劃分,數據庫結構在數據庫實例方面沒有變化。通常,數據庫之間唯一的不同在于實例包含的數據不同。 



開發出中間層應用程序,使得實例間的數據得到適當維護,是這種解決方案的特點??赡芎茈y決定如何在數據庫實例間劃分數據。數據分配方法十分關鍵,因為我們需要在不同服務器間比較平均地分散數據負載。不進行這種平均分割,你就無法取得向外擴展數據庫的任何好處,因為查詢或事務處理的大部分IO仍然只發生在一臺服務器上。 



既然全部數據不再保存在一臺服務器上,因此在必要時更難對所有數據執行查詢。幸運的是,你可以建立分布式劃分視圖連接兩個服務器實例間的數據,使得數據看起來就像保存在一臺服務器上。有一些特殊的視圖,它們利用連接的服務器和在數據表上建立的約束,有效地返回數據,就好像你只查詢一臺服務器上的數據一樣。(我將在下周的文章中詳細討論分布式劃分視圖。) 



另外,值得一提的是,如果服務器處在不同的地理位置,它們的性能可能會受到影響。在這種情況下,你可能希望復制實例間的數據,以便每臺服務器擁有完整的數據,但只負責維護特定的一塊數據。 



垂直數據劃分 



垂直數據劃分包括把數據庫表分割成在不同服務器上保存的不同數據庫實例。每臺服務器一般分配完成一個特殊的任務。這樣就可以對那些表中的IO進行分割。這種類型的分割取決于將系統邏輯地劃分成許多部分,以便這些部分能夠獨立操作。如果實例間需要最少量的交互進行事務處理,這種處理就很有必要。 



例如,如果你的數據庫系統維護銷售、營銷和廣告數據,最好是把這些表分割成單個的數據庫實例,阻止它們共享同一臺服務器上的IO??赡苣氵€需要處理這兩個共享一些相同數據(例如客戶數據)的系統。能夠分割這些商業功能,你就可以在必要時向外擴展數據庫環境,提高系統效率。 



你可以采取一些措施,如在每一臺服務器上使用相互連接的表和視圖,以便實例可以從其它實例中查看數據。這樣做可以減少應用程序層決定在哪找到它需要的數據時所需的額外計算量。你需要保證應用程序層具有必要的邏輯性,以決定將數據保存在哪臺服務器上。 



修改 



你可以對水平和垂直數據劃分方法進行修改,使其更好地適應你的環境。例如,你可以使用一個面向服務的架構在服務器間分配處理能力;應用復制確保數據庫實例相互之間保持緊密同步;以及組合應用這些技巧。 
 

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97