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

PolarDB:レンジパーティショニング

最終更新日:Jun 11, 2024

構文

データは、範囲境界によって分割される。 時間境界が一般的に使用される。 パーティションの境界は増分である必要があります。 最大範囲の境界としてMAXVALUEを指定できます。

テーブルを作成...
PARTITION BY RANGE(partition_expr) [PARTITIONS number]
(
  PARTITION part_name未満の値 (range_bound_value) 、
  PARTITION part_name未満の値 (range_bound_value) 、
  ...
)

partition_expr:
    partition_column	
  | partition_func(partition_column)


# パーティション関数を定義します。
partition_func:
     
  | TO_DAYS
  | TO_MONTHS
  | TO_WEEKS
  | TO_SECOND
  | UNIX_TIMESTAMP
  | 月
  | DAYOFWEEK
  | DAYOFMONTH
  | DAYOFYEAR
  | SUBSTR
  | SUBSTRING
  | 右
  | 左 
説明

RANGEパーティショニングとRANGE COLUMNSパーティショニングの違いの詳細については、「概要」トピックの「RANGEパーティショニングとRANGE COLUMNSパーティショニングの比較」をご参照ください。

使用上の注意

  • RANGEパーティショニングでは、単一列のパーティションキーにパーティション関数を使用できます。 ただし、パーティションキー列のサポートされるデータ型は、パーティション関数によって異なります。

  • RANGEパーティショニングでは、ベクトルパーティションキーにパーティション関数を使用することはできません。

  • パーティションキー列にはネストされたパーティション分割関数を使用できません。

  • 各パーティションの名前は一意である必要があり、デフォルトでは最大16文字の長さにすることができます。

  • TIMESTAMPなどのタイムゾーンに依存するデータ型の列をパーティションキー列として使用する場合は、パーティションキー列にUNIX_TIMESTAMPパーティション分割関数を使用する必要があります。

  • 既定では、パーティション分割テーブルには最大8,192個のパーティションを含めることができます。

  • デフォルトでは、パーティションキーは最大5つのパーティションキー列で構成できます。

パーティション分割関数の使用

DATETIME型の誕生日列を単一列パーティションキーとして指定し、TO_DAYSパーティショニング関数を使用して誕生日列の値を日数に変換し、RANGEパーティショニングを実行します。

テーブルの作成tb_r_fn (
 id bigint not null auto_increment, 
 bid int, 
 名前varchar(30) 、
 birthday datetime not null,
 主キー (id)
)
レンジによるパーティー (TO_DAYS(birthday))
(
   PARTITION p1未満の値 (TO_DAYS('2020-01-01 ')) 、
   PARTITION p2はより少ない値 (TO_DAYS('2021-01-01 ')) 、
   PARTITION p3はより少ない値 (TO_DAYS('2022-01-01 ')) 、
   PARTITION pm値より少ない (最大値)
) 

その他のパーティション分割関数の使用方法の詳細については、「パーティション分割関数」をご参照ください。

パーティション分割関数を使用せずにパーティション分割を実行する

RANGEパーティション分割の単一列パーティションキーとしてid列を指定し、パーティション数を8に設定します。

テーブルの作成tb_r (
 id bigint not null auto_increment, 
 bid int, 
 名前varchar(30) 、
 birthday datetime not null,
 主キー (id)
)
範囲による参加 (id)
(
   パートp1の値は (1000) 未満、
   PARTITION p2の値は (2000) より少なく、
   PARTITION p3の値は (3000) よりも少なく、
   PARTITION pm値より少ない (最大値)
) 

ベクターパーティションキーの使用

RANGEパーティショニングにベクターパーティションキーが使用されている場合、RANGEパーティショニングは自動的にRANGE COLUMNSパーティショニングに変換されます。 次のサンプルコードは、bid列とid列に基づくRANGEパーティション分割の例を示しています。

テーブルの作成tb_r (
 id bigint not null auto_increment, 
 bid int, 
 名前varchar(30) 、
 birthday datetime not null,
 主キー (id)
)
範囲による参加 (入札、id)
(
   パートp1の値は (1,1000) 未満、
   PARTITION p2の値は (2,2000) より少なく、
   より少ないPARTITION pm値 (MAXVALUE、MAXVALUE)
) 

前述のRANGEパーティショニングは、RANGE COLUMNSパーティショニングに自動的に変換されます。 次のサンプルコードは、RANGE COLUMNSパーティション分割の例を示します。

テーブルの作成tb_r (
 id bigint not null auto_increment, 
 bid int, 
 名前varchar(30) 、
 birthday datetime not null,
 主キー (id)
)
RANGE COLUMNSによるパーティー (入札、id)
(
   パートp1の値は (1,1000) 未満、
   PARTITION p2の値は (2,2000) より少なく、
   より少ないPARTITION pm値 (MAXVALUE、MAXVALUE)
) 

データ型の制限

  • 整数型: BIGINT、BIGINT UNSINGEDINT、INT、INT UNSINGED、MEDIUMINT、MEDIUMINT UNSINGED、SMALLINT、SMALLINT UNSINGED、TINYINT、およびTINYINT UNSINGED

  • 日付と時刻のタイプ: DATETIME、Date、およびTIMESTAMP

  • 文字列型: CHARおよびVARCHR