パーティション分割タイプ
PolarDB-Xには、データをパーティションにルーティングする方法を制御するために使用できる次のパーティション分割タイプがあります。
HASHパーティショニング
HASH (MySQLのHASHパーティショニング構文と互換性があります)
KEY (MySQLのKEYパーティショニング構文と互換性があります)
レンジパーティショニング
RANGE (MySQLのRANGEパーティショニング構文と互換性があります)
RANGE COLUMNS (MySQLのRANGE COLUMNSパーティショニング構文と互換性があります)
リスト分割
LIST (MySQLのLISTパーティショニング構文と互換性があります)
LIST COLUMNS (MySQLのLIST COLUMNSパーティショニング構文と互換性があります)
シナリオ固有のパーティション分割
CO_HASH (PolarDB-Xはパーティション分割構文を備えています)
HASHパーティショニング
このパーティション分割型は、組み込みのコンシステントハッシングアルゴリズムを使用して、パーティション分割関数またはパーティションキー列を含む指定された式のハッシュ値を計算し、データをパーティションにルーティングします。 HASHパーティショニングタイプには、パーティショニング関数を含む式が使用されるか、パーティションキー列がパーティションキーとして使用されるかに基づいて、KEYパーティショニングとHASHパーティショニングが含まれます。
表 1 KEYパーティショニングとHASHパーティショニングの比較
パーティション分割タイプ | サポートされているパーティションキー | サポート分割機能 | 文構文 | 制限 | ルーティングポリシー (ポイントクエリ) |
KEYパーティショニング (デフォルト) | 単一列パーティションキー | 任意 | キーによるパーティション (c1) |
|
|
ベクトル分割キー | 任意 | PARTITION BY KEY(c1,c2,...,cn) |
|
| |
ハッシュ | 単一列パーティションキー | 任意 | ハッシュによるパーティー (c1) |
| PARTITION BY HASH(c1) のルーティングポリシーは、PARTITION BY KEY(c1) のルーティングポリシーと同じです。 |
可 | ハッシュによるパーティー (年 (c1)) |
| |||
ベクトル分割キー | 任意 | PARTITIONBY HASH(c1,c2,...,cn) |
|
|
レンジパーティショニング
このパーティショニングタイプは、指定されたパーティションキー列の値、またはパーティション関数を含む指定された式によって返される値を比較および計算して、データが分散される定義済みパーティションの範囲を決定し、データをパーティションにルーティングします。 RANGEパーティショニングタイプには、パーティション関数を含む式が使用されるか、パーティションキー列がパーティションキーとして使用されるかに基づいて、RANGE COLUMNSパーティショニングとRANGEパーティショニングが含まれます。
表 2. RANGEパーティショニングとRANGE COLUMNSパーティショニングの比較
パーティション分割タイプ | サポートされているパーティションキー | サポート分割機能 | 文構文 | 制限 | ルーティングポリシー (ポイントクエリ) |
範囲の列 | 単一列パーティションキーとベクターパーティションキー | 任意 | PARTITION BY RANGE COLUMNS (c1,c2,...,cn) ( PARTITION p1値が (1,10,...,1000) 未満、PARTITION p2値が (2,20,...,2000) 未満、...) | ホットパーティション分割がサポートされています。 c1パーティションキー列の88など、多数の行に同じ値が含まれている場合は、c2パーティションキー列の値に基づいてホットデータを分割できます。 |
|
範囲 | 単一列パーティションキー | 可 | 範囲による部分 (年 (c1)) (部分p1の値がより少ない (2019) 、部分p2の値がより少ない (2021) ...) |
|
|
リスト分割
このパーティショニングタイプは、RANGEパーティショニングに似ています。 指定されたパーティションキー列の値、またはパーティション関数を含む指定された式によって返される値を比較および計算して、データが分散される定義済みパーティションの範囲を決定し、データをパーティションにルーティングします。 LISTパーティショニングタイプには、複数のパーティションキー列がパーティションキーとして使用されているかどうか、および使用方法に基づいて、LIST COLUMNSパーティショニングとLISTパーティショニングが含まれます。
表 3. LISTパーティショニングとLIST COLUMNSパーティショニングの比較
パーティション分割タイプ | サポートされているパーティションキー | サポート分割機能 | 文構文 | 制限 | ルーティングポリシー (ポイントクエリ) |
リスト列 | 単一列パーティションキーとベクターパーティションキー | 任意 | リストによるPARTITION COLUMNS (c1,c2,...,cn) ( PARTITION p1 VALUES IN ((1,10,...,1000),(2,20,...,2000) )) 、PARTITION p2 VALUES IN (((3,30,...,3000),(3,30,...,3000) )) 、... | ホットパーティション分割はサポートされていません。 |
|
List | 単一列パーティションキー | 可 | リストによる部分 (YEAR(c1)) (部分p1の値 (2018,2019) 、部分p2の値 (2020,2021) ...) | ホットパーティション分割はサポートされていません。 |
COHASHパーティショニング
PolarDB-Xには、値が似ているさまざまなパーティションキー列に基づいてテーブルを水平方向にパーティション分割する必要があるシナリオ用の新しいパーティション分割タイプCOHASHパーティション分割もあります。
COHASH分割は、HASH分割およびKEY分割と同様である。 次の表は、タイプを比較しています。
表 4. COHASHパーティショニング、HASHパーティショニング、およびKEYパーティショニングの比較
違い | CO_ハッシュ | キー | ハッシュ |
ステートメント構文 | PARTITION BY CO_HASH(c1, c2) パーティション8 | PARTITION BY キー (c1, c2) パーティション8 | PARTITION BY HASH(c1, c2) パーティション8 |
単一列パーティションキー | 非対応 | 対応 | 対応 |
ベクトル分割キー | 対応 | 対応 | 対応 |
ベクトルパーティションキー列のパーティション関数 | サポートされています。 例: PARTITION BY CO_HASH ( /* c1列の値の最後の4文字でテーブルを分割します。* / 右 (c1, 4) 、 /* c2列の値の最後の4文字でテーブルを分割します。* / 右 (c2, 4) ) パーティション8 | 非対応 | 非対応 |
パーティションキー列の関係 | 列の値は似ています。 パーティションテーブルの異なるパーティションキー列の値の類似性を維持する必要があります。 例:
| フェデレーションインデックスのプレフィックスに似ています。 | フェデレーションインデックスのプレフィックスに似ています。 |
プレフィックス、パーティションプルーニング、および例を含むパーティションキー列の同等のクエリ | サポートされる例:
| サポートされる例:
| サポートされていません。 パーティションプルーニングは、すべてのパーティションキー列に同等の条件が含まれている場合にのみサポートされます。 例:
|
プレフィックス、パーティションプルーニング、および例のないパーティションキー列の同等のクエリ | すべてのパーティションキー列の同等の条件は、パーティションプルーニングをサポートします。 例:
| サポートされていません。 プレフィックスのないパーティションの同等の条件では、すべてのパーティションがスキャンされる必要があります。 例:
| サポートされていません。 プレフィックスのないパーティションの同等の条件では、すべてのパーティションがスキャンされる必要があります。 例:
|
範囲クエリ | サポートされていません。 すべてのパーティションがスキャンされます。 | サポートされていません。 すべてのパーティションがスキャンされます。 | サポートされていません。 すべてのパーティションがスキャンされます。 |
ルーティングポリシー (ポイントクエリ) |
| KEYパーティショニングおよびHASHパーティショニングに関する前述の内容を参照してください。 | KEYパーティショニングおよびHASHパーティショニングに関する前述の内容を参照してください。 |
ホットパーティション分割 | サポートされていません。 c1='88' などのホットキー値に対しては、さらにホットパーティション分割を実行できません。 | 対応 | 非対応 |
パーティション分割、マージ、移行などのパーティション管理 | 対応 | 対応 | 対応 |
レベル2パーティション | 対応 | 対応 | 対応 |