基于給定的分區(qū)個數(shù),將數(shù)據(jù)分配到不同的分區(qū),HASH分區(qū)只能針對整數(shù)進行HASH,對于非整形的字段只能通過表達式將其轉(zhuǎn)換成整數(shù)。表達式可以是mysql中任意有效的函數(shù)或者表達式,對于非整形的HASH往表插入數(shù)據(jù)的過程中會多一步表達式的計算操作,所以不建議使用復(fù)雜的表達式這樣會影響性能。

MYSQL支持兩種HASH分區(qū),常規(guī)HASH(HASH)和線性HASH(LINEAR HASH) 。

 

 

一、常規(guī)HASH

常規(guī)hash是基于分區(qū)個數(shù)的取模(%)運算。根據(jù)余數(shù)插入到指定的分區(qū)

復(fù)制代碼
CREATE TABLE tbhash (
    id INT NOT NULL,
    store_id INT )
PARTITION BY HASH(store_id)
PARTITIONS 4 ;

網(wǎng)友評論