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

PolarDB:インターバル範囲パーティション

最終更新日:May 08, 2025

インターバル範囲パーティションは、範囲パーティションの拡張機能です。挿入されるデータが既存のパーティションの範囲を超えた場合に、データベースが自動的にパーティションを作成できます。

前提条件

クラスタのバージョンは PolarDB for MySQL 8.0.2 で、クラスタのリビジョンバージョンは 8.0.2.2.0 以降である必要があります。クラスタのカーネルバージョンの確認方法については、「エンジンバージョンの確認」をご参照ください。

背景情報

範囲パーティションテーブルにデータを挿入する場合、データが既存のパーティションの範囲外にあると、データは挿入されず、エラーが返されます。挿入されるデータがインターバルパーティションテーブルの範囲を超えると、データベースは INTERVAL 句で指定された範囲に基づいて新しいパーティションを自動的に作成できます。

パーティション範囲が 1 か月に設定されていて、挿入されるデータが現在のトランジションポイント(現在のパーティションの最大境界値)から 2 か月後である場合、データの月のパーティションとその月の前の月のパーティションが作成されます。たとえば、インターバル範囲パーティションテーブルを作成します。間隔は 1 か月で、現在のトランジションポイントは 2021 年 9 月 15 日です。2021 年 12 月 10 日のデータを挿入しようとすると、データベースは 2021 年 9 月 15 日から 2021 年 12 月 15 日までの 3 つの期間に対して 3 つのパーティションを自動的に作成します。次に、データは 2021 年 12 月 10 日をカバーする期間のパーティションに挿入されます。

制限事項

  • インターバル範囲パーティションでは、COLUMNS() は単一のパーティションキーのみを指定でき、これは数値または日付範囲である必要があります。

  • 少なくとも 1 つの範囲パーティションを定義する必要があります。

  • インターバル範囲パーティションテーブルのパーティションは、昇順でのみ作成できます。

  • パーティションキーが DATE 型の場合、間隔は TIME 型(HOUR、MINUTE、または SECOND)にすることはできません。パーティションキーが TIME 型の場合、間隔は DATE 型(YEAR、QUARTER、MONTH、WEEK、または DAY)にすることはできません。パーティションキーが SECOND 型の場合、間隔は 60 未満にすることはできません。

  • INSERT SELECT 文または UPDATE 文を実行してパーティションを追加することはできません。

  • テーブルの作成時に定義した間隔を変更することはできません。

  • サブパーティションは、範囲ハッシュパーティションテーブルでのみサポートされています。

  • LOAD DATA 文を実行してデータをインポートする場合は、パーティションテーブルの現在の範囲がすべてのデータをカバーしていることを確認する必要があります。

  • トリガー、ストアドファンクション、またはストアドプロシージャを使用して、インターバル範囲パーティションにデータを挿入することはできません。

  • LOCK TABLES 文はサポートされていません。

  • パーティションキーは、AUTO_INCREMENT、仮想カラム、生成されたデフォルトカラム、または STRING 型にすることはできません。

  • カスタムパーティション(テーブル作成文および DDL 文で作成されたものを含む)に _p 文字列をプレフィックスとして付けることはできません。

  • 自動的に作成されたパーティションは、作成後にロールバックできません。

  • データをバッチで挿入する場合、一度に最大 30 個のパーティションを作成できます。

  • INSERT 文の実行中に別の DDL 文を実行してパーティションを自動的に作成すると、デッドロックが検出され、エラーが報告される場合があります。

  • インターバル範囲パーティションは、範囲パーティションの拡張機能です。インターバル範囲パーティションが適用できないシナリオでは、代わりに範囲パーティションを使用してください。

使用方法

次のパラメータを設定して、インターバル範囲パーティションを有効化または設定できます。
パラメータ説明
partition_level_mdl_enabledインターバル範囲パーティションは、パーティションレベル MDL 機能に基づいて実装されています。利点は、最小記述長(MDL)の粒度が小さいため、DDL 文が DML 文に与える影響を軽減できることです。したがって、インターバル範囲パーティションを使用するには、partition_level_mdl_enabled パラメータが ON に設定されていることを確認する必要があります。このパラメータが OFF に設定されている場合、インターバル範囲パーティションテーブルを作成することはできません。既存のインターバル範囲パーティションテーブルの場合、パーティションの範囲内にある値のみを挿入できます。範囲外の値を挿入すると、エラーが報告されます。
interval_partitioning_enabledinterval_partitioning_enabled パラメータはインターバル範囲パーティション機能を制御し、partition_level_mdl_enabled パラメータはパーティションレベル MDL 機能を制御します。インターバル範囲パーティション機能には、両方のパラメータが必要です。2 つのパラメータは ON に設定する必要があります。interval_partitioning_enabled パラメータが OFF に設定されている場合、インターバル範囲パーティションテーブルを作成することはできません。既存のインターバル範囲パーティションテーブルの場合、パーティションの範囲内にある値のみを挿入できます。範囲外の値を挿入すると、エラーが報告されます。
transaction_isolationパーティションレベル MDL 機能は、リードコミットまたはリードアンコミットレベルでのみ分離を提供できます。したがって、このパラメータは、パーティションレベル MDL 機能の分離レベルと一致している必要があります。デフォルトでは、クラウドクラスタはリードコミット分離レベルを使用します。