通過分區(Partition)提升MySQL效能

來源:互聯網
上載者:User

  今天這麼激動又想寫文章的原因是MySQL5.1的發布帶來了設計超強動力資料庫的強有力的武器,任何MySQL的DBA都應該儘快學習並使用它。我覺得如果­能很好滴使用這個5.1版帶來的新特性,DBA可以使自己管理的VLDB(不知道什麼是VLDB?告訴你,是好大好大的資料庫的意思,Very Large DB)或資料倉儲奇蹟般的獲得巨大的效能提升。

  什麼是資料庫分區?

  資料庫分區是一種物理資料庫設計技術,DBA和資料庫建模人員對其相當熟悉。雖然分區技術可以實現很多效果,但其主要目的是為了在特定的SQL操作中減少資料讀­寫的總量以縮減回應時間。

  分區主要有兩種形式://這裡一定要注意行和列的概念(row是行,column是列)

  水平資料分割(Horizontal Partitioning)

  這種形式分區是對錶的行進行分區,通過這樣的方式不同分組裡面的物理列分割的資料集得以組合,從而進行個體分割(單分區)或集體分割(1個或多個分區)。所有在­表中定義的列在每個資料集中都能找到,所以表的特性依然得以保持。

  舉個簡單例子:一個包含十年發票記錄的表可以被分區為十個不同的分區,每個分區包含的是其中一年的記錄。(朋奕註:這裡具體使用的分區方式我們後面再說,可以先­說一點,一定要通過某個屬性列來分割,譬如這裡使用的列就是年份)

  垂直資料分割(Vertical Partitioning)

  這種分區方式一般來說是通過對錶的垂直劃分來減少目標表的寬度,使某些特定的列被劃分到特定的分區,每個分區都包含了其中的列所對應的行。

  舉個簡單例子:一個包含了大text和BLOB列的表,這些text和BLOB列又不經常被訪問,這時候就要把這些不經常使用的text和BLOB了劃分到另一­個分區,在保證它們資料相關性的同時還能提高訪問速度。

  在資料庫供應商開始在他們的資料庫引擎中建立分區(主要是水平資料分割)時,DBA和建模者必須設計好表的物理分區結構,不要儲存冗餘的資料(不同表中同時都包含父­表中的資料)或相互連接成一個邏輯父物件(通常是視圖)。這種做法會使水平資料分割的大部分功能失效,有時候也會對垂直資料分割產生影響。

  在MySQL 5.1中進行分區

  MySQL5.1中最激動人心的新特性應該就是對水平資料分割的支援了。這對MySQL的使用者來說確實是個好訊息,而且她已經支援分區大部分模式: 

   Range(範圍) –

  這種模式允許DBA將資料劃分不同範圍。例如DBA可以將一個表通過年份劃分成三個分區,80年代(1980's)的資料,90年代(1990's)的資料以及­任何在2000年(包括2000年)後的資料。 

  Hash(雜湊) –

  這中模式允許DBA通過對錶的一個或多個列的Hash Key進行計算,最後通過這個Hash碼不同數值對應的資料區域進行分區。例如DBA可以建立一個對錶主鍵進行分區的表。

  Key(索引值) –

  上面Hash模式的一種延伸,這裡的Hash Key是MySQL系統產生的。
        
  List(預定義列表) –

  這種模式允許系統通過DBA定義的列表的值所對應的行資料進行分割。例如:DBA建立了一個橫跨三個分區的表,分別根據2004年2005年和2006年值所對­應的資料。

  Composite(複合模式) -

  很神秘吧,哈哈,其實是以上模式的組合使用而已,就不解釋了。舉例:在初始化已經進行了Range定界分割的表上,我們可以對其中一個分區再進行hash雜湊分­區。

  

共4頁: 上一頁 1 [2][3][4]下一頁



相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。