MySQL中的分割槽(五)HASH分割槽

2022-06-09 01:45:09 字數 1709 閱讀 8555

hash

分割槽主要用來分散熱點讀,取保資料在預先確定個數的分割槽中盡可能的平均分布。

對乙個表執行

hash

分割槽時,

mysql

會對分割槽鍵應用乙個雜湊函式,一次確定資料應該放在哪乙個分割槽中。

mysql

分割槽支援兩種

hash

分割槽,常規

hash

分割槽和線性

hash

分割槽。常規

hash

使用的是取模演算法,線性

hash

使用的是線性

2的冪運算。

如果要增加分割槽數量,取模演算法是

mod(

expr

,x+1

),原來分割槽中的資料幾乎都要重新計算,所以常規分割槽在分割槽管理上代價太大,

mysql

提供了線性

hash

分割槽,來降低分割槽管理的代價。

linear hash

在分割槽維護(增加,刪除,合併,拆分分割槽)時,

mysql

能夠處理的更加迅速,但是和常規

hash

各分割槽之間的資料分布不太均衡。

常規分割槽時,儲存數值

a所在的分割槽,n(

a)=mod(a,num)=a&(num-1)

線性分割槽時,找到大於等於

num的冪

v=power(2

,ceiling

(log(2

,num

)));

n=a&

(num-1

),僅以

a 為非負整數為例。

mysql分割槽管理 hash分割槽

hash分割槽的目的是將資料按照某列進行hash計算後更加均勻的分散到各個分割槽,相比,range和list分割槽來說,hash分割槽不需要明確指定乙個給定的列值或者列值集合 應該在儲存在哪個分割槽,mysql會自動按照hash計算後完成這些工作,我們只需要基於將要進行hash的列值指定乙個列或者表...

mysql 分割槽 hash分割槽(四)

hash分割槽,分割槽字段必須是整型或者轉換為整型 hash分割槽主要用來分散熱點讀,確保資料在預先確定個數的分割槽中可能的平均分布。對乙個表執行hash分割槽時,mysql會對分割槽鍵應用乙個雜湊函式,以此確定資料應當放在n個分割槽中的哪個分割槽。mysql支援兩種hash分割槽 常規hash分割...

MySQL分割槽表 hash分割槽

雜湊分割槽最主要的用法是用來保證資料的平均分布。使用範圍分割槽和列表分割槽時必須顯示地定義分割槽值或者值列表 但是使用雜湊分割槽時,我們只需要對列值或者基於列值的表示式進行雜湊運算,就可以進行分割槽了。在進行雜湊分割槽是,我們需要在create table語句後加上partition by hash...