PolarDB-X は、パーティション全体でのデータ分散を制御するため、HASH、KEY、RANGE、LIST、および CO_HASH のパーティションタイプをサポートしています。
パーティションタイプ
PolarDB-X は、以下のパーティションタイプをサポートしています:
-
HASH パーティショニング
-
HASH (MySQL 互換構文)
-
KEY (MySQL 互換構文)
-
-
RANGE パーティショニング
-
RANGE (MySQL 互換構文)
-
RANGE COLUMNS (MySQL 互換構文)
-
-
LIST パーティショニング
-
LIST (MySQL 互換構文)
-
LIST COLUMNS (MySQL 互換構文)
-
-
シナリオ固有のパーティショニング
CO_HASH (PolarDB-X 固有の構文)
HASH パーティショニング
HASH パーティショニングでは、コンシステントハッシュアルゴリズムを使用してパーティションキー列またはパーティショニング関数式からハッシュ値を計算し、データをルーティングします。これには、[KEY パーティショニング] (列ベース) と [HASH パーティショニング] (関数ベース) が含まれます。
KEY パーティショニングと HASH パーティショニングの比較
|
パーティションタイプ |
サポートされるパーティションキー |
パーティショニング関数のサポート |
ステートメント構文 |
制限事項 |
ルーティングポリシー (ポイントクエリ) |
|
KEY パーティショニング (デフォルト) |
単一列のパーティションキー |
いいえ |
|
|
|
|
ベクトルパーティションキー |
いいえ |
|
|
|
|
|
HASH パーティショニング |
単一列のパーティションキー |
いいえ |
|
|
|
|
はい |
|
|
|||
|
ベクトルパーティションキー |
いいえ |
|
|
|
RANGE パーティショニング
RANGE パーティショニングは、パーティションキー値またはパーティショニング関数の結果を事前に定義された境界と比較することで、データをルーティングします。これには、[RANGE COLUMNS パーティショニング] (列ベース) と [RANGE パーティショニング] (関数ベース) が含まれます。
RANGE パーティショニングと RANGE COLUMNS パーティショニングの比較
|
パーティションタイプ |
サポートされるパーティションキー |
パーティショニング関数のサポート |
ステートメント構文 |
制限事項 |
ルーティングポリシー (ポイントクエリ) |
|
RANGE COLUMNS パーティショニング |
単一列のパーティションキーとベクトルパーティションキー |
いいえ |
|
ホットパーティション分割をサポートしています。多くの行が同じ |
|
|
RANGE パーティショニング |
単一列のパーティションキー |
はい |
|
|
|
LIST パーティショニング
LIST パーティショニングは RANGE パーティショニングと同様に機能しますが、範囲の代わりに個別の値のリストと値を照合します。これには [LIST COLUMNS パーティショニング] (列ベース) と [LIST パーティショニング] (関数ベース) が含まれます。
LIST パーティショニングと LIST COLUMNS パーティショニングの比較
|
パーティションタイプ |
サポートされるパーティションキー |
パーティショニング関数のサポート |
ステートメント構文 |
制限事項 |
ルーティングポリシー (ポイントクエリ) |
|
LIST COLUMNS パーティショニング |
単一列のパーティションキーとベクトルパーティションキー |
いいえ |
|
ホットパーティション分割はサポートされていません。 |
|
|
LIST パーティショニング |
単一列のパーティションキー |
はい |
|
ホットパーティション分割はサポートされていません。 |
CO_HASH パーティショニング
PolarDB-X は、類似した値を持つ複数の列にまたがる水平パーティショニングが必要なテーブル向けに、CO_HASH パーティショニングも提供しています。
次の表は、CO_HASH と HASH および KEY パーティショニングを比較したものです。
CO_HASH パーティショニング、HASH パーティショニング、KEY パーティショニングの比較
|
項目 |
CO_HASH |
KEY |
HASH |
|
ステートメント構文 |
|
|
|
|
単一列のパーティションキー |
サポートされていません |
サポートされています |
サポートされています |
|
ベクトルパーティションキー |
サポートされています |
サポートされています |
サポートされています |
|
ベクトルパーティションキー列に対するパーティショニング関数 |
サポートされています。例:
|
サポートされていません |
サポートされていません |
|
パーティションキー列間の関係 |
列の値は類似している必要があります。パーティションキー列間の類似性を維持する必要があります。例:
|
複合インデックスのプレフィックスに似ています。 |
複合インデックスのプレフィックスに似ています。 |
|
プレフィックス付きパーティションキー列の等価クエリ、パーティションプルーニング、および例 |
サポートされています。例:
|
サポートされています。例:
|
サポートされていません。パーティションプルーニングには、すべてのパーティションキー列に対する等価条件が必要です。例:
|
|
プレフィックスなしパーティションキー列の等価クエリ、パーティションプルーニング、および例 |
サポートされています。すべてのパーティションキー列に対する等価条件は、パーティションプルーニングをサポートします。例:
|
サポートされていません。プレフィックス条件がない場合、すべてのパーティションがスキャンされます。例:
|
サポートされていません。プレフィックス条件がない場合、すべてのパーティションがスキャンされます。例:
|
|
範囲クエリ |
サポートされていません。すべてのパーティションがスキャンされます。 |
サポートされていません。すべてのパーティションがスキャンされます。 |
サポートされていません。すべてのパーティションがスキャンされます。 |
|
ルーティングポリシー (ポイントクエリ) |
|
詳細については、「HASH パーティショニング セクションのルーティングポリシー」をご参照ください。 |
ルーティングポリシーはハッシュパーティショニングと同様です。 |
|
ホットパーティション分割 |
サポートされていません。 |
サポートされています |
サポートされていません |
|
パーティション分割、マージ、移行などのパーティション管理 |
サポートされています |
サポートされています |
サポートされています |
|
サブパーティショニング |
サポートされています |
サポートされています |
サポートされています |