Mysql 分區介紹(六) —— HASH分區

來源:互聯網
上載者:User

標籤:mysql分區   hash分區   資料庫分區   

hash分區是使用主鍵去確保資料均勻分布在一個預先確定數位分區上. 在range 或list分區中. 你必須顯式的指定給出的資料寫入哪個分區或設定一個列值去儲存; 在hash分區中. Mysql已經為你準備的. 你只需要指定一個列的值或運算式基於列值去hash和分區的數字在哪個分區表中.

CREATE TABLE employees (    id INT NOT NULL,    fname VARCHAR(30),    lname VARCHAR(30),    hired DATE NOT NULL DEFAULT ‘1970-01-01‘,    separated DATE NOT NULL DEFAULT ‘9999-12-31‘,    job_code INT,    store_id INT)PARTITION BY HASH(store_id)PARTITIONS 4;

如果不包含PARTITIONS, 那麼預設為1個分區

使用日期分區

CREATE TABLE employees (    id INT NOT NULL,    fname VARCHAR(30),    lname VARCHAR(30),    hired DATE NOT NULL DEFAULT ‘1970-01-01‘,    separated DATE NOT NULL DEFAULT ‘9999-12-31‘,    job_code INT,    store_id INT)PARTITION BY HASH( YEAR(hired) )PARTITIONS 4;

expr 必須是非恒量的數, 非隨機的數, 就是數字是不同的, 但是是可以確定的。

如何確定一條資料的分區呢?先建立一個表

CREATE TABLE t1 (col1 INT, col2 CHAR(5), col3 DATE)    PARTITION BY HASH( YEAR(col3) )    PARTITIONS 4;

如果你插入一條記錄到T1的col3值為“2005-09-15 ‘,然後分配其儲存決定如下:

MOD(YEAR(‘2005-09-01‘),4)=  MOD(2005,4)=  1
1. 線性hash分區

線性hash分區使用一個線性2的冪運演算法則

REATE TABLE employees (    id INT NOT NULL,    fname VARCHAR(30),    lname VARCHAR(30),    hired DATE NOT NULL DEFAULT ‘1970-01-01‘,    separated DATE NOT NULL DEFAULT ‘9999-12-31‘,    job_code INT,    store_id INT)PARTITION BY LINEAR HASH( YEAR(hired) )PARTITIONS 4;

給定的一個運算式expr,分區中的記錄儲存線上性散列使用分區數n在Num的分區,其中n是根據下面的演算法推導:

  1. 發現大於2的數我們稱這種價值V下的力量;它可以計算為:

    V = POWER(2, CEILING(LOG(2, num)))

    (假設數字為13)。然後LOG(2,13)是3.7004397181411。CEILING(3.7004397181411)是4,和V =功率(2,4),這是16。)

  2. N = F(column_list) & (V - 1).
  3. N >= num:

  4. Set V = V / 2
  5. Set N = N & (V - 1)

線上性雜湊分割的好處是增加,下降,合并,拆分分區可以更快,有利於在處理含有非常大量的資料表(百萬MB)。缺點是,與常規雜湊分割獲得的分布相比,分區之間不太可能均勻分布資料.

Mysql 分區介紹(六) —— HASH分區

聯繫我們

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

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

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.