このトピックでは、PolarDB-Xパーティションテーブルとは何か、その利点、およびMySQLパーティションテーブルとの違いについて説明します。
AUTOモードのPolarDB-Xデータベースでは、大量のデータを含む論理テーブルは、特定のパーティショニングルールに基づいて複数の小さな物理テーブルに分割されます。 論理テーブルは区分テーブルと呼ばれ、より小さな各物理テーブルは、より大きなテーブルの区分と呼ばれる。 PolarDB-Xは、KEY、HASH、RANGE、LIST、COHASHなどのテーブルを分割するためのさまざまなルールを提供します。 これらのルールは、レベル2のハイブリッド分割ルールとして機能するように柔軟に組み合わせることもできます。 これにより、効率的なデータ管理が可能になるだけでなく、パーティショニングルールとMySQLのパーティショニング構文との互換性が高くなり、ユーザーに便利で馴染みのある操作体験を提供します。
PolarDB-Xには、パーティション分割、マージ、データ移行、スケジューリングなど、便利なO&Mおよび管理のための一連の機能も用意されています。 ユーザーはデータを柔軟かつ効率的に管理できます。 たとえば、特定のパーティションのデータを独立したストレージノードに分離したり、大きなパーティションをより小さなサブパーティションにさらに分割したりできます。
メリット
RANGE、RANGE COLUMN、KEY、LIST、LIST COLUMN、およびCOHASHパーティショニングルール、およびレベル2テンプレートまたは非テンプレートパーティションのこれらのパーティショニングルールの任意の組み合わせをサポートします。 これにより、データガバナンスがより柔軟になります。
グローバルセカンダリインデックス (GSI) をサポートします。 GSIは、異なるディメンションで行われるクエリのインデックス作成を容易にします。
パーティションのプルーニングをサポートします。これにより、オプティマイザは指定されたクエリ条件を満たさないパーティションを除外できます。 これにより、クエリ中にスキャンされるパーティションが少なくなり、エンジンの作業負荷が軽減されます。
PartitionWiseの参加をサポートします。 この機能により、クエリの負荷が大幅に軽減され、クエリのパフォーマンスが向上します。 これは、パーティションテーブルをパーティションリンクに抽象化し、パーティション化基準を満たさないパーティションを効率的に除外することによって達成されます。
並列クエリをサポートします。これにより、大きなパーティションテーブルのクエリパフォーマンスが複数回向上します。
柔軟なパーティションスケジューリングをサポートし、パーティションベースのデータ分離を簡素化します。
MySQLパーティションテーブルとの比較
項目 | PolarDB-Xパーティションテーブル | MySQLパーティションテーブル | |
パーティションの場所 | パーティションは自動的に異なるデータノードに分散され、単一ノードのリソースボトルネックを解消します。 | すべてのパーティションはプライマリノードに存在し、その上のリソースを共有します。 | |
サポートされるパーティション分割ルール |
|
| |
サポートされるパーティション分割関数 詳細については、「パーティション関数」をご参照ください。 | 関数を使用して、HAHS、RANGE、またはLISTルールを表現できます。 PolarDB-XとMySQLの両方で使用できる関数を次の項目に示します。
PolarDB-Xでのみ使用できる関数を次に示します。
| 関数を使用して、HAHS、RANGE、またはLISTパーティション分割ルールを表すことができます。 MySQLテーブルのパーティション化に使用できる関数については、「関数に関するパーティション化の制限」をご参照ください。 MySQLは、 | |
ハッシュ分割ルール | HASH |
|
|
キー |
|
| |
CO_HASH |
| CO_HASHはサポートされていません。 | |
範囲分割ルール | RANGE | right/left/substrなどの文字タイプの入力を使用するパーティション関数をサポートします。 詳細については、「RANGEパーティショニング」をご参照ください。 | right/left/substrなどの文字型の入力を使用するパーティション関数はサポートされていません。 |
レンジコラム | デフォルトでは、パーティション定義用に最大5つのパーティションキー列をサポートします。 パラメータは調整できます。 詳細については、「RANGE COLUMNSパーティショニング」をご参照ください。 | パーティションキー列の数は制限されません。 | |
リスト分割ルール | リスト |
|
|
リストCOLUNNS |
|
| |
二次パーティション分割ルール | ハイブリッドルール | 最大49のハイブリッドルールは、7つの正规法レベル1分割ルールとレベル2分割ルールに基づいて使用できます。 |
|
テンプレート化および非テンプレート化 | すべてのハイブリッドルールは、テンプレートまたは非テンプレートとして使用できます。 詳細は、「二次パーティション分割」をご参照ください。 |
| |
ロケーション分布 |
| パーティションレベルのローカリティはサポートされていません。 | |
パーティションレベルの変更 |
| パーティションMySQLテーブルは、パーティション定義に対する次の変更をサポートします。
ほとんどのパーティションレベルでは、ロックテーブルが変更されます。 | |
パーティション化されたテーブルの再定義 |
|
| |
パーティションキー列の制約 | PolarDB-Xでは、パーティションテーブルでは、プライマリキーと一意のキーがすべてのパーティションキー列 (レベル1パーティションとレベル2パーティションを含む) を含む必要はありません。 | MySQLでは、パーティションテーブルでは、すべてのパーティションキー列 (レベル1パーティションとレベル2パーティションを含む) を含むプライマリキーと一意のキーが必要です。 | |
グローバルインデックス |
| グローバルインデックスはサポートされていません。 | |