資料庫最佳化-水平切分-以及在實際項目中的應用,切分項目

來源:互聯網
上載者:User

資料庫最佳化-水平切分-以及在實際項目中的應用,切分項目

    資料庫水平資料分割,相對垂直資料分割,需要做的工作和事情要多一些,但是對一些行資料特別多的表,非常有必要。

    在我在BDC項目中的不斷最佳化中,總結了下面幾種常用的資料庫水平切分方法:

1.  表分區;

2.  表拆分;

3.  表分庫;

 

表分區

表分區是ORACLE和新版本的MYSQL資料庫中,一個非常強大的功能。非常值得學習。

但是表分區如果用不好,效能反倒會下降。我記得我們的另外一個項目組,他們就嘗試使用表分區,於是安排了一個沒有相關經驗的開發人員去研究,研究了幾天,然後發現速度更加慢了,於是,表分區的計劃就此終止。這是題外話。

    在選定表分區這個方案之後,首先要做的第一件事情,那就是要樹立信心,表分區在處理大表資料的情況下,是一定有效果的,如果效果不明顯或者沒效果甚至效果變差了,那麼首先要考慮是不是用的地方不太對。

    先說我們項目的實際情況,核心電話表當初的大小是1.2億,我們選擇的方案是表分區,那麼接下來就是要根據資料情況,對這些資料進行不同維度區分,讓它更好的為商務服務。

我們的表中有一個很關鍵的內容,那就是地區;每一個電話資訊,對應一個地區,這個是我們全國性電信資料的一個基本特徵。

    那麼是區分到省一級呢,還是到地市一級呢?我們有資料的省級行政區是32個,地市是300多個。分區不能太零碎,除非有確切的需要,否則以後營運是一個非常頭疼的事情。那麼我們在省一級區划上作為分區的條件。

    分區設計了,如果在SQL中就要體現出來,如果不體現分區,有可能會讓效率降低。

    使用分區比較簡單,一種是直接明確分區,比如

select * from tel PARTITION (310000) ;其中PARTITION (310000)是指上海的資料分區,其中310000是上海市對應的國家標準編碼;

這是一種寫法,我個人更加傾向於另外一種寫法:

Select* from tel t where t.prov_code = 310000

其中,分區的標註就是建立在prov_code 這個欄位上,ORACLE會自動調用分區的特性。

 

    就結果而言,通過類似的分區改造之後,峰值輸送量從以前一天400萬資料,資料庫就要掛掉,最高達到了一天處理1200萬資料,資料庫貌似還有餘力,效果還是不錯的。

   

    表分區涉及的概念和功能蠻多的,有空整理下這方面的內容。

 

表拆分

    表拆分是一門古老的技術,也很實用。我們很久以前做電信黃頁,那個時候表分區還沒有成熟,我們處理大表最常用的技術就是表拆分了。

    表拆分從邏輯上非常簡單,我們有一張9000萬資料的號簿表,包含了31個省公司的號簿資料,這些資料同時由31個省公司進行維護。

    9000萬的資料,無論是檢索,修改,刪除,對效能的影響都是很高。那就按照省份直接進行拆分吧。建立出31張表替代這一張,然後建立一個全國性視圖,供集團使用。

 

表分庫

    我們在表分區裡提到了隔壁一個項目組,嘗試使用表分區沒有成功,但是活人不能被尿憋死,他們也找到了他們適合的方法,這個辦法就是表分庫。

    表分庫是什麼呢?其實我們的資料庫主備機制,就是一個表分庫的雛形。他們是怎麼做的呢,首先準備硬體,購買了一組資料庫硬體;然後把現有的資料庫複寫一份到新硬體上去,把業務資料清理乾淨,把常量資料保留;然後對系統做簡單的調整,長江南邊的進入老系統,訪問老資料庫;長江北面的進入新系統,訪問新資料庫。

    除了花錢有一點之外,改造風險確實蠻小的。當然,不是所有的系統都能這樣分庫。

 

    綜上所述,當資料庫到達一定規模,垂直切分和水平切分都是項目負責人必須要考慮的問題,無論使用哪種方式,都需要在瞭解業務的基礎上,根據本系統的實際情況,選擇一個最合適的方法。

 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.