一、基本理論
在mysql大資料處理上,水平分表技術是很常用的,但是分表技術帶來了php處理的很大開銷,為了解決這個弊端mysql5.1以後以外掛程式的方式增加了乙個新的技術--分割槽技術。
分割槽技術是在邏輯層進行的水平分表,對於應用程式而言還是一張表,mysql5.1有4種分割槽型別
1、range:基於屬於乙個給定連續區間的列值,把多行分配給分割槽。
2、list :類似於range分割槽,區別在於list分割槽是基於列值匹配乙個離散值集合中的某個值來進行 選擇
3、hash :基於使用者定義的表示式的返回值來進行選擇的分割槽,該表示式使用將要插入到表中的這些列值進行計算,這個函式可以包含mysql中有效的、產生非負整數值的任何表示式。
4、key :類似於hash,區別在於key 分割槽只支援計算一列或多列,且mysql提供其自身的雜湊函式。
二、不同分割槽技術對比
型別優點
缺點共性
range
適合日期型別,支援復合分割槽
有限的分割槽
一般只針對某一列
list
適合有固定取值的列,支援復合分割槽
有限的分割槽,插入記錄這一列的值不再list中,資料會丟失
一般只針對某一列
hash
線性hash使增加、刪除和合併分割槽更快捷
線性hash資料分布不均勻,而一般的hash資料分布比較均勻
一般只針對某一列
key列可以是字元等其他非int型
函式比較複雜,效率比較低
一般只針對某一列
mysql分割槽技術
在mysql 5.1.3之後引入和partition 分割槽 的概念。這個是個好東東。以前遇到乙個大表的時候,我們會手動將其分為幾個小表 就是分表操作 但是分表操作有幾個缺點 1 麻煩,這裡指的麻煩是不僅對於呼叫分表的sql語句的處理上,也是分表的具體操作步驟上。2 當乙個表從單錶變為分表的時候,上...
MySQL分割槽技術
mysql分割槽技術是mysql5.1以後出現的新技術,能替代分庫分表技術,它的優勢在於只在物理層面來降低資料庫壓力。常用的mysql分割槽型別 1.range分割槽 基於屬於乙個給定的連續區間的列值,把多行分配給分割槽 基於列 2.list分割槽 類似於按range分割槽,區別在於list分割槽是...
mysql分割槽技術
把乙個表,從邏輯上分成多個區域,便於儲存資料。採用分割槽的前提,資料量非常大。如果資料表的記錄非常多,比如達到上億條,資料表的活性就大大降低,資料表的執行速度就比較慢 效率低下,影響mysql資料庫的整體效能,就可以採用分割槽解決 分割槽是mysql本身就支援的技術 list 條件值為乙個資料區。演...