日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

如何確定分區個數

本文介紹如何確定HASH分區、List Default Hash分區以及RANGE分區的分區個數。

HASH分區

您可以在創建分區表時多嘗試幾個分區值,盡量找一個可以使得數據均衡分布的一個值作為分區值。以下命令可以輔助您來評估分區數量。

  • 查看按照ID值分為10個分區后每個分區的數據量。

    select id%10 as part_id , count(1) from table_name group by id%10; 
  • 查看每個ID值對應的數據量。

    select id, count(1) as cnt from table_name group by shop_id order by cnt desc;
說明
  • 對于業務上有連接需求的表,創建分區表時可以采用相同的分區結構,以方便做連接。

  • 規劃表結構時,需考慮業務增長場景下對分區表的要求。

  • 您可以通過以下命令來查看分區表中每個分區下大約有多少數據量:

    select * from mysql.innodb_table_stats where table_name like 'table_name#%' order by n_rows desc;

LIST DEFAULT HASH分區

以SaaS的多租戶業務表為例,您可以參考以下兩種方案來確定分區個數:

  • 一個租戶使用一個LIST分區,或者幾個租戶共用一個LIST分區。

    您可以評估下數據量,每個分區大約500萬至1000萬條數據。假設每個租戶最大數據量為100萬,則建議多個租戶共用一個LIST分區,如10個租戶共用一個LIST分區。

  • 多嘗試幾個分區值。

    如果取整數不能滿足數據分布均衡要求,您可以嘗試取質數。如7和13等。

說明
  • 對于業務上有連接需求的表,創建分區表時可以采用相同的分區結構,以方便做連接。

  • 規劃表結構時,需考慮業務增長場景下對分區表的要求。

  • 您可以通過以下命令來查看分區表中每個分區下大約有多少數據量:

    select * from mysql.innodb_table_stats where table_name like 'table_name#%' order by n_rows desc;

RANGE分區

RANGE分區一般按照天、月、年三個維度進行分區。對每個分區的數據量要求不嚴格,主要由業務的實際需求而定。