本文主要介紹了選擇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
);
文檔內容是否對您有幫助?