本文主要介紹了選擇LIST DEFAULT HASH分區的情境。
如果您想用LIST規則進行分區,但是分區鍵欄位無法全部枚舉,或者枚舉值非常多,而對應的資料量很少。資料分布符合二八原則,20%的分區索引值包含了80%的資料量,剩餘80%的分區索引值包含了20%的資料量。在這種情境下,您就可以選擇LIST DEFAULT HASH分區類型,80%的資料按照LIST規則進行分區,不符合LIST規則的資料放到預設的DEFAULT分區裡,按照HASH規則進行分區。
例如,對於多租戶的業務系統,每個租戶產生的使用者資料量不均衡,您可以把巨量資料量的租戶按照LIST規則分區,然後中小資料量的租戶按照HASH規則分成多個分區,如下:
租戶ID | 資料量 | 分區 |
大客戶1 | 3000萬 | p1 |
大客戶2 | 2600萬 | p2 |
大客戶3 | 2400萬 | p3 |
大客戶4 | 2000萬 | p4 |
中小客戶群 | 3000萬 | p_others |
CREATE TABLE cust_orders
(
customer_id VARCHAR(36),
year VARCHAR(60),
order_id INT,
order_content text
) PARTITION BY LIST COLUMNS(customer_id)
(
PARTITION p1 VALUES IN ('大客戶1'),
PARTITION p2 VALUES IN ('大客戶2'),
PARTITION p3 VALUES IN ('大客戶3'),
PARTITION p4 VALUES IN ('大客戶4'),
PARTITION p_others DEFAULT PARTITIONS 3
);