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

PolarDB:パーティション化関数

最終更新日:Jun 11, 2024

このトピックでは、自動パーティショニングモードでPolarDB-Xデータベースでサポートされるパーティショニング関数について説明します。

用語

  • パーティションキー: パーティションキーには、PolarDB-Xがテーブルを水平にパーティション化する1つ以上の列が含まれます。

  • partition key column: パーティションキー列は、PolarDB-Xがテーブル内のデータをパーティションに分割する際に基づく列です。 パーティションキーは、1つ以上のパーティションキー列で構成されます。

  • ベクトルパーティションキー: ベクトルパーティションキーは、partition by Hash(c1,c2,c3) の (c1,c2,c3) などの1つ以上のパーティションキー列で構成されます。

  • single-columnパーティションキー: 単一列パーティションキーには、partition by Hash(c1) のc1など、1つのパーティションキー列のみが含まれます。

  • パーティショニング関数: パーティショニング関数は、パーティションキー列を入力パラメーターとして使用し、どのPolarDB-Xがデータをテーブルのパーティションにルーティングするかに基づいて結果を返します。 例: ハッシュによるパーティション (To_Days(c1))

  • 単調性: 分割関数の単調性は、独立変数xの値が増加または減少するときにfunc(x) 関数によって返される値の変化傾向を表します。 分割関数は、以下のタイプのうちの1つの単調性を有し得る。 厳密な単調性または厳密でない単調性を持つパーティション関数のみが、範囲クエリのパーティションプルーニングをサポートします。

    • 厳密な単調性: 独立変数xの値が独立変数yの値よりも大きい場合、func(x) 関数によって返される値はfunc(y) 関数による値よりも大きくなります。 独立変数xの値が独立変数yの値よりも小さい場合、func(x) 関数の値はfunc(y) 関数の値よりも小さくなります。

    • 非厳密単調性: 独立変数xの値が独立変数yの値よりも大きい場合、func(x) 関数によって返される値はfunc(y) 関数による値以上です。 独立変数xの値が独立変数yの値よりも小さい場合、func(x) 関数の値はfunc(y) 関数の値よりも小さいか等しい。

    • 単調性なし: 独立変数xの値が独立変数yの値よりも大きい場合、func(x) 関数によって返される値はfunc(y) 関数による値以上ではありません。

制限事項

次の表に、PolarDB-Xでサポートされているパーティション関数、パーティション関数をサポートするPolarDB-Xのバージョン、パーティション関数の単調性、およびパーティション関数でサポートされているパーティションキー列のデータ型を示します。

パーティション分割関数

説明

サポートされているバージョン

単調性

パーティションキー列のサポートデータ型

1整数型

2日付と時刻のタイプ

3文字列型

入力日の年を返します。 詳細については、MySQLドキュメントの「YEAR(date) 」をご参照ください。

5.4.13以降

非厳密な単調性

入力日の月を返します。 詳細については、MySQLドキュメントのMONTH(date) をご参照ください。

5.4.13以降

単調性なし

1月1日0000から入力日までの日数を返します。 詳細については、MySQLドキュメントの「TO_DAYS(date) 」をご参照ください。

5.4.13以降

非厳密な単調性

1月1日から入力日0000の月数を返します。 この関数は、PolarDB-X固有の関数です。

5.4.16-16717637以降

非厳密な単調性

1月1日0000から入力日までの週数を返します。 この関数は、PolarDB-X固有の関数です。

5.4.16-16717637以降

非厳密な単調性

1月1日0000 00:00:00から入力時刻までの秒数を返します。 詳細については、MySQLドキュメントの「TO_SECONDS(expr) 」をご参照ください。

5.4.13以降

非厳密な単調性

1月1日1970 00:00:00 UTCから入力時刻までの秒数を返します。 詳細については、MySQLドキュメントの「UNIX_TIMESTAMP([date]) 」をご参照ください。

5.4.13以降

非厳密な単調性

入力日の週番号を返します。 たとえば、日曜日には1が返され、月曜日には2が返され、土曜日には7が返されます。 詳細については、MySQLドキュメントの「DAYOFWEEK(date) 」をご参照ください。

5.4.16-16717637以降

単調性なし

現在の月の入力日の日付を返します。 有効な値: 1 ~ 31。 詳細については、MySQLドキュメントの「DAYOFMONTH(date) 」をご参照ください。

5.4.16-16717637以降

単調性なし

現在の年の入力日の日付を返します。 有効な値: 1 ~ 366 詳細については、MySQLドキュメントの「DAYOFYEAR(date) 」をご参照ください。

5.4.16-16717637以降

単調性なし

SUBSTR/SUBSTRING

入力文字列の部分文字列を返します。 詳細については、MySQLドキュメントの「SUBSTR() およびSUBSTRING() 」をご参照ください。

5.4.16-16717637以降

単調性なし

入力文字列から長さn文字の右端の部分文字列を返します。 詳細については、MySQLドキュメントの「RIGHT(str,len) 」をご参照ください。

5.4.18-17034692以降

単調性なし

入力文字列から長さn文字の左端の部分文字列を返します。 詳細については、MySQLドキュメントの「LEFT(str,len) 」をご参照ください。

5.4.18-17034692以降

単調性なし

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

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

3. 文字列型: CHARおよびVARCHR

次の表に、PolarDB-Xでサポートされているパーティション化機能を適用できるパーティション化ポリシーを示します。

パーティション分割関数

キー分割

HASHパーティショニング

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

RANGE COLUMNSパーティショニング

リスト分割

リスト列パーティショニング

CO_HASHパーティショニング

単一列パーティションキー

ベクトル分割キー

単一列パーティションキー

ベクトル分割キー

TO_SECOND

SUBSTR/SUBSTRING