MySQL 分割槽表

kidking2010發表於2015-04-01

MySQL分割槽有多種模式,而且在MySQL5.1中,支援水平分割槽,下面就為您介紹5個常見的MySQL分割槽模式,希望對您有所幫助。

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

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雜湊分割槽。

MySQL分割槽帶來的好處太多了,這裡強調兩點好處:

效能的提升(Increased performance) - 在掃描操作中,如果MySQL的最佳化器知道哪個分割槽中才包含特定查詢中需要的資料,它就能直接去掃描那些分割槽的資料,而不用浪費很多時間掃描不需要的地方 了。需要舉個例子?好啊,百萬行的表劃分為10個分割槽,每個分割槽就包含十萬行資料,那麼查詢分割槽需要的時間僅僅是全表掃描的十分之一了,很明顯的對比。同 時對十萬行的表建立索引的速度也會比百萬行的快得多得多。如果你能把這些分割槽建立在不同的磁碟上,這時候的I/O讀寫速度就“不堪設想”(沒用錯詞,真的 太快了,理論上100倍的速度提升啊,這是多麼快的響應速度啊,所以有點不堪設想了)了。

對資料管理的簡化(Simplified data management) - MySQL分割槽技術可以讓DBA對資料的管理能力提升。透過優良的MySQL分割槽,DBA可以簡化特定資料操作的執行方式。例如:DBA在對某些分割槽的內容進行刪除的同時能保證餘下的分割槽的資料完整性(這是跟對錶的資料刪除這種大動作做比較的)。 此外分割槽是由MySQL系統直接管理的,DBA不需要手工的去劃分和維護。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23141985/viewspace-1482266/,如需轉載,請註明出處,否則將追究法律責任。

相關文章