パーティションの種類
PolarDB-X は、データをパーティションにルーティングする方法を制御するために使用できる、以下のパーティションの種類を提供します。
HASH パーティション
HASH (MySQL の HASH パーティション構文と互換性があります)
KEY (MySQL の KEY パーティション構文と互換性があります)
RANGE パーティション
RANGE (MySQL の RANGE パーティション構文と互換性があります)
RANGE COLUMNS (MySQL の RANGE COLUMNS パーティション構文と互換性があります)
LIST パーティション
LIST (MySQL の LIST パーティション構文と互換性があります)
LIST COLUMNS (MySQL の LIST COLUMNS パーティション構文と互換性があります)
シナリオ固有のパーティション
CO_HASH (PolarDB-X 独自のパーティション構文)
HASH パーティション
このパーティションの種類は、組み込みの一貫したハッシュアルゴリズムを使用して、パーティション関数またはパーティションキー列を含む指定された式のハッシュ値を計算し、データをパーティションにルーティングします。 HASH パーティションの種類には、パーティションキーとしてパーティション関数を含む式が使用されるか、パーティションキー列が使用されるかに基づいて、[KEY パーティション] と [HASH パーティション] が含まれます。
KEY パーティションと HASH パーティションの比較
パーティションの種類 | サポートされているパーティションキー | パーティション関数のサポート | ステートメント構文 | 制限 | ルーティングポリシー (ポイントクエリ) |
KEY パーティション (デフォルト) | 単一列パーティションキー | いいえ |
|
|
|
ベクターパーティションキー | いいえ |
|
|
| |
ハッシュ | 単一列パーティションキー | いいえ |
|
|
|
はい |
|
| |||
ベクターパーティションキー | いいえ |
|
|
|
RANGE パーティション
このパーティションの種類は、指定されたパーティションキー列の値、またはパーティション関数を含む指定された式によって返される値を比較および計算して、データが分散される定義済みパーティションの範囲を決定し、データをパーティションにルーティングします。 RANGE パーティションの種類には、パーティションキーとしてパーティション関数を含む式が使用されるか、パーティションキー列が使用されるかに基づいて、[RANGE COLUMNS パーティション] と [RANGE パーティション] が含まれます。
RANGE パーティションと RANGE COLUMNS パーティションの比較
パーティションの種類 | サポートされているパーティションキー | パーティション関数のサポート | ステートメント構文 | 制限 | ルーティングポリシー (ポイントクエリ) |
RANGE COLUMNS | 単一列パーティションキーとベクターパーティションキー | いいえ |
| ホットパーティション分割がサポートされています。 c1 パーティションキー列の 88 など、多数の行に同じ値が含まれている場合、c2 パーティションキー列の値に基づいてホットデータを分割できます。 |
|
RANGE | 単一列パーティションキー | はい |
|
|
|
LIST パーティション
このパーティションの種類は RANGE パーティションに似ています。指定されたパーティションキー列の値、またはパーティション関数を含む指定された式によって返される値を比較および計算して、データが分散される定義済みパーティションの範囲を決定し、データをパーティションにルーティングします。 LIST パーティションの種類には、複数のパーティションキー列がパーティションキーとして使用されるかどうか、および使用方法に基づいて、[LIST COLUMNS パーティション] と [LIST パーティション] が含まれます。
LIST パーティションと LIST COLUMNS パーティションの比較
パーティションの種類 | サポートされているパーティションキー | パーティション関数のサポート | ステートメント構文 | 制限 | ルーティングポリシー (ポイントクエリ) |
LIST COLUMNS | 単一列パーティションキーとベクターパーティションキー | いいえ |
| ホットパーティション分割はサポートされていません。 |
|
LIST | 単一列パーティションキー | はい |
| ホットパーティション分割はサポートされていません。 |
COHASH パーティション
PolarDB-X は、値が類似している異なるパーティションキー列に基づいてテーブルを水平方向にパーティション化する必要があるシナリオのために、新しいパーティションの種類である COHASH パーティションも提供しています。
COHASH パーティションは、HASH パーティションと KEY パーティションに似ています。次の表は、これらの種類を比較したものです。
COHASH パーティション、HASH パーティション、KEY パーティションの比較
項目 | CO_HASH | KEY | ハッシュ |
ステートメント構文 |
|
|
|
単一列パーティションキー | サポートされていません | サポートされています | サポートされています |
ベクターパーティションキー | サポートされています | サポートされています | サポートされています |
ベクターパーティションキー列のパーティション関数 | サポートされています。例: | サポートされていません | サポートされていません |
パーティションキー列間の関係 | 列の値は類似しています。パーティションテーブル内の異なるパーティションキー列の値間の類似性を維持する必要があります。例:
| フェデレーテッドインデックスのプレフィックスに似ています。 | フェデレーテッドインデックスのプレフィックスに似ています。 |
プレフィックス付きパーティションキー列、パーティションプルーニング、および例に対する同等のクエリ | サポートされています。例:
| サポートされています。例:
| サポートされていません。すべてのパーティションキー列に対する同等の条件が含まれている場合にのみ、パーティションプルーニングがサポートされます。例:
|
プレフィックスなしのパーティションキー列、パーティションプルーニング、および例に対する同等のクエリ | サポートされています。プレフィックスのないパーティションに対する同等の条件では、すべてのパーティションのスキャンが必要です。例:
| サポートされていません。プレフィックスのないパーティションに対する同等の条件では、すべてのパーティションのスキャンが必要です。例:
| サポートされていません。プレフィックスのないパーティションに対する同等の条件では、すべてのパーティションのスキャンが必要です。例:
|
範囲クエリ | サポートされていません。すべてのパーティションがスキャンされます。 | サポートされていません。すべてのパーティションがスキャンされます。 | サポートされていません。すべてのパーティションがスキャンされます。 |
ルーティングポリシー (ポイントクエリ) |
| 詳細については、「HASH パーティション」セクションのルーティングポリシーをご参照ください。 | 詳細については、「ハッシュパーティション」セクションのルーティングポリシーをご参照ください。 |
ホットパーティション分割 | サポートされていません。 | サポートされています | サポートされていません |
パーティションの分割、マージ、移行などのパーティション管理 | サポートされています | サポートされています | サポートされています |
サブパーティション | サポートされています | サポートされています | サポートされています |