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