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


