垂直與水平聯合切分的使用
日期:2011/11/13 / 人氣:
在實際的應用場景中,除了那些負載并不是太大、業務邏輯也相對簡單的系統可以通過上面切分方法之一來解決擴展性問題之外,恐怕其他大部分業務邏輯復雜、系統負載大的系統,都無法通過上面任何一種數據的切分方法來實現較好的擴展性,這就需要將“垂直”和“水平”這兩種切分方法結合使用,不同的場景使用不同的切分方法。
一般來說,數據庫中的所有表很難通過某一個(或少數幾個)字段全部關聯起來,所以僅僅通過數據的水平切分無法解決所有問題。而垂直切分也只能解決部分問題,對于那些負載非常高的系統,即使只是單個表都無法通過單臺數據庫主機來承擔其負載。必須結合“垂直”和“水平”兩種切分方式,充分利用兩者的優點,避開其缺點。
每一個應用系統的負載都是一步一步增長上來的,在開始遇到性能瓶頸的時候,大多數架構師和DBA都會選擇先進行數據的垂直拆分,因為這樣的成本最低,最符合這個時期所追求的最大投入產出比。然而,隨著業務的不斷擴張,系統負載的持續增長,在系統穩定一段時期之后,經過了垂直拆分之后的數據庫集群可能再次不堪重負,遇到了性能瓶頸。
此時該如何抉擇?是再次進一步細分模塊,還是尋找其他的解決辦法?如果我們再像最開始那樣繼續細分模塊,進行數據的垂直切分,那可能在不久的將來,又會遇到現在所面臨的同樣問題。而且隨著模塊的不斷細分,應用系統的架構也會越來越復雜,整個系統很可能會出現失控的局面。
這時候就需要利用數據水平切分的優勢來解決遇到的問題。而且,完全不必在使用數據水平切分時,推倒之前進行數據垂直切分的成果,而是在其基礎上利用水平切分的優勢來避開垂直切分的弊端,解決系統復雜性不斷擴大的問題。而水平拆分的弊端(規則難以統一)也已經被之前的垂直切分解決掉了,讓水平切分可以進行得得心應手。
實際上,在很多大型的應用系統中,垂直切分和水平切分基本上是并存的,而且經常在不斷地交替進行,以增加系統的擴展能力。我們在應對不同的應用場景時,也需要充分考慮到這兩種切分方法的局限及優勢,在不同時期(負載壓力)使用不同的方式。
佛山網站建設_佛山網站制作_佛山網站設計_佛山網站_佛山網頁設計_佛山網頁建設_佛山網頁制作
聯合切分的有點:
1)可以充分利用垂直切分和水平切分各自的優勢而避免各自的缺陷;
2)讓系統擴展性得到最大化提升。
聯合切分的缺點:
1)數據庫系統架構比較復雜,維護難度更大;
2)應用程序架構也更復雜。
作者:朋友圈科技
相關內容 Related
- 為什么響應式設計需要媒體查詢2016/8/5
- 虛擬主機被搜索引擎爬蟲訪問耗費大量流量解決方法2016/8/3
- 網站建設中如何創建完美的顏色組合2016/8/1
- 什么是長尾關鍵詞?2016/8/1
- 建設企業或個人網站的好處2016/7/8
- 前端開發者需要知道的常識2016/7/6
- 12種方法為您拓展業務通道2016/7/27
- SEO優化的三大技巧2016/7/24
- 10的方法來提高你的網站設計2016/7/24
- 網站統計用哪個比較好,百度?cnzz?2016/7/21