全部產品
Search
文件中心

PolarDB:何時選擇LIST DEFAULT HASH分區

更新時間:Jul 06, 2024

本文主要介紹了選擇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
);