1. 程式人生 > >Mysql 分區介紹(五) —— LIST COLUMNS分區

Mysql 分區介紹(五) —— LIST COLUMNS分區

mysql分區 數據庫分區 list分區

Mysql 5.6開始支持LIST COLUMNS分區, 可以開始使用多個列作為分區的鍵, 並且列的數據類型除了數字類型可以作為分區列; 你也可以使用字符串類型, DATE和DATETIME

你有一個在12個城市客戶的業務, 為了銷售和市場的目的, 你的組織每3個城市劃分為一個區域
針對LIST COLUMNS分區, 你可以基於城市的名稱創建一個客戶數據表並聲明4個分區當你的客戶存在對應的這個區域:

CREATE TABLE customers_1 (
    first_name VARCHAR(25),
    last_name VARCHAR(25),
    street_1 VARCHAR(30),
    street_2 VARCHAR(30),
    city VARCHAR(15),
    renewal DATE
)
PARTITION BY LIST COLUMNS(city) (
    PARTITION pRegion_1 VALUES IN(‘Oskarshamn‘, ‘H?gsby‘, ‘M?nster?s‘),
    PARTITION pRegion_2 VALUES IN(‘Vimmerby‘, ‘Hultsfred‘, ‘V?stervik‘),
    PARTITION pRegion_3 VALUES IN(‘N?ssj?‘, ‘Eksj?‘, ‘Vetlanda‘),
    PARTITION pRegion_4 VALUES IN(‘Uppvidinge‘, ‘Alvesta‘, ‘V?xjo‘)
);

使用日期分區

CREATE TABLE customers_2 (
    first_name VARCHAR(25),
    last_name VARCHAR(25),
    street_1 VARCHAR(30),
    street_2 VARCHAR(30),
    city VARCHAR(15),
    renewal DATE
)
PARTITION BY LIST COLUMNS(renewal) (
    PARTITION pWeek_1 VALUES IN(‘2010-02-01‘, ‘2010-02-02‘, ‘2010-02-03‘,
        ‘2010-02-04‘, ‘2010-02-05‘, ‘2010-02-06‘, ‘2010-02-07‘),
    PARTITION pWeek_2 VALUES IN(‘2010-02-08‘, ‘2010-02-09‘, ‘2010-02-10‘,
        ‘2010-02-11‘, ‘2010-02-12‘, ‘2010-02-13‘, ‘2010-02-14‘),
    PARTITION pWeek_3 VALUES IN(‘2010-02-15‘, ‘2010-02-16‘, ‘2010-02-17‘,
        ‘2010-02-18‘, ‘2010-02-19‘, ‘2010-02-20‘, ‘2010-02-21‘),
    PARTITION pWeek_4 VALUES IN(‘2010-02-22‘, ‘2010-02-23‘, ‘2010-02-24‘,
        ‘2010-02-25‘, ‘2010-02-26‘, ‘2010-02-27‘, ‘2010-02-28‘)
);

但是這種情況在日期增長到非常大的時候是很復雜的, 所以這種還是使用RANGE 分區方式比較好。

Mysql 分區介紹(五) —— LIST COLUMNS分區