すべてのプロダクト
Search
ドキュメントセンター

PolarDB:パーティション数の決定

最終更新日:Apr 01, 2025

このトピックでは、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 のマルチテナントビジネステーブルなどのリストデフォルトハッシュパーティションテーブルの場合、パーティション数を決定するために、次のソリューションを参照できます。

  • 1 つのテナントが 1 つのリストパーティションを使用するか、複数のテナントが 1 つのリストパーティションを共有します。

    データ量を評価します。テーブルが 10 億行または 1 TB のデータを超える場合は、テーブルをパーティション分割することをお勧めします。単一パーティションのサイズが 64 TB を超えないようにし、将来のビジネスの成長に対応できるようにパーティションを計画します。

    大規模なテナントには専用の LIST パーティションを割り当て、データサイズが類似しているテナントは共有 LIST パーティションにグループ化し、残りのテナントは DEFAULT HASH パーティションを使用して処理できます。たとえば、テナント 1 のデータ量が 10 億行の場合は、専用の LIST パーティションを割り当てます。テナント 2 ~ 11 のデータ量は、1 億行、8,000 万行など、比較的小さいです。これらの 10 個のテナントは、単一の LIST パーティションを共有できます。小規模なテナントの場合、たとえば、合計データ量が 90 億行の 10,000 個のテナントのデータは、DEFAULT HASH パーティションに格納できます。 DEFAULT HASH パーティションは、さらに 9、11、または 13 のサブパーティションに分割できます。

  • 異なるパーティション数を作成してみて、最適な数を選択します。

    パーティション数として使用される整数がデータの均等な分散の要件を満たせない場合は、7 や 13 などの素数を使用できます。

説明
  • これらのテーブルの結合を容易にするために、異なるパーティションテーブルに同じパーティション構造を使用できます。

  • テーブルパーティション構造を計画する際には、ビジネスボリュームの増加に伴うシナリオでのパーティションテーブルの要件を考慮してください。

  • パーティションテーブルの各パーティションのおおよそのデータ量を表示するには、次のコマンドを実行できます。

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

RANGE パーティション分割

ほとんどの場合、RANGE パーティション分割は、日、月、年によって実装されます。各パーティションのデータ量は厳密には必要ではなく、主に実際のビジネス要件によって決定されます。