MySQL 8.0 リファレンスマニュアル


MySQL 8.0 リファレンスマニュアル  /  INFORMATION_SCHEMA テーブル  /  INFORMATION_SCHEMA PARTITIONS テーブル

26.21 INFORMATION_SCHEMA PARTITIONS テーブル

PARTITIONS テーブルは、テーブルパーティションに関する情報を提供します。 このテーブルの各行は、パーティションテーブルの個々のパーティションまたはサブパーティションに対応します。 テーブルのパーティション化の詳細は、第24章「パーティション化 を参照してください。

PARTITIONS テーブルには、次のカラムがあります:

  • TABLE_CATALOG

    テーブルが属するカタログの名前。 この値は常に def です。

  • TABLE_SCHEMA

    テーブルが属するスキーマ (データベース) の名前。

  • TABLE_NAME

    パーティションを含むテーブルの名前。

  • PARTITION_NAME

    パーティションの名前。

  • SUBPARTITION_NAME

    PARTITIONS テーブルの行がサブパーティションを表す場合はサブパーティションの名前、それ以外の場合は NULL

    NDB の場合: この値は常に NULL です。

  • PARTITION_ORDINAL_POSITION

    すべてのパーティションは、定義されている順序でインデックス付けされ、1 は最初のパーティションに割り当てられた番号です。 インデックス設定は、パーティションが追加、削除、再編成されると変わることがあります。このカラムに表示された番号は、インデックス設定の変更を考慮した現在の順序を表します。

  • SUBPARTITION_ORDINAL_POSITION

    特定のパーティション内のサブパーティションも、パーティションがテーブル内でインデックス付けされるのと同じ方法でインデックス付けおよび再インデックス付けされます。

  • PARTITION_METHOD

    RANGE, LIST, HASH, LINEAR HASH, KEY または LINEAR KEY のいずれかの値、つまり セクション24.2「パーティショニングタイプ」 で説明されている使用可能なパーティション化タイプ。

  • SUBPARTITION_METHOD

    HASH, LINEAR HASH, KEY または LINEAR KEY。つまり、セクション24.2.6「サブパーティショニング」 で説明されている使用可能なサブパーティション化タイプのいずれかです。

  • PARTITION_EXPRESSION

    テーブルの現在のパーティション化スキームを作成した CREATE TABLE ステートメントまたは ALTER TABLE ステートメントで使用されるパーティション化関数の式。

    たとえば、次のステートメントを使用して test データベースに作成されたパーティション化されたテーブルを考えてみます。

    CREATE TABLE tp (
        c1 INT,
        c2 INT,
        c3 VARCHAR(25)
    )
    PARTITION BY HASH(c1 + c2)
    PARTITIONS 4;

    このテーブルのパーティションの PARTITIONS テーブルの行の PARTITION_EXPRESSION カラムには、次に示すように c1 + c2 が表示されます:

    mysql> SELECT DISTINCT PARTITION_EXPRESSION
           FROM INFORMATION_SCHEMA.PARTITIONS
           WHERE TABLE_NAME='tp' AND TABLE_SCHEMA='test';
    +----------------------+
    | PARTITION_EXPRESSION |
    +----------------------+
    | c1 + c2              |
    +----------------------+
  • SUBPARTITION_EXPRESSION

    これは、PARTITION_EXPRESSION がテーブルパーティション化の定義に使用するパーティション化式の場合と同様に、テーブルのサブパーティション化を定義するサブパーティション化式でも機能します。

    テーブルにサブパーティションがない場合、このカラムは NULL です。

  • PARTITION_DESCRIPTION

    このカラムは RANGE および LIST パーティションに使用されます。 RANGE パーティションの場合、パーティションの VALUES LESS THAN 句で設定された値が含まれます。これには整数か MAXVALUE のどちらかを指定できます。 LIST パーティションの場合、このカラムには、カンマ区切りの整数値のリストであるパーティションの VALUES IN 句で定義された値が含まれます。

    PARTITION_METHODRANGE または LIST 以外であるパーティションの場合、このカラムは常に NULL になります。

  • TABLE_ROWS

    パーティション内のテーブルの行数。

    パーティション化された InnoDB テーブルの場合、TABLE_ROWS カラムで指定された行数は、SQL 最適化で使用される推定値に過ぎず、必ずしも正確であるとはかぎりません。

    NDB テーブルの場合は、ndb_desc ユーティリティを使用してこの情報を取得することもできます。

  • AVG_ROW_LENGTH

    このパーティションまたはサブパーティションに格納されている行の平均長 (バイト)。 これは TABLE_ROWS で分割された DATA_LENGTH と同じです。

    NDB テーブルの場合は、ndb_desc ユーティリティを使用してこの情報を取得することもできます。

  • DATA_LENGTH

    このパーティションまたはサブパーティションに格納されているすべての行の合計長 (バイト)。つまり、パーティションまたはサブパーティションに格納されている合計バイト数です。

    NDB テーブルの場合は、ndb_desc ユーティリティを使用してこの情報を取得することもできます。

  • MAX_DATA_LENGTH

    このパーティションまたはサブパーティションに格納できる最大バイト数。

    NDB テーブルの場合は、ndb_desc ユーティリティを使用してこの情報を取得することもできます。

  • INDEX_LENGTH

    このパーティションまたはサブパーティションのインデックスファイルの長さ (バイト単位)。

    NDB テーブルのパーティションの場合、テーブルで暗黙的または明示的なパーティション化を使用するかどうかにかかわらず、INDEX_LENGTH カラムの値は常に 0 です。 ただし、ndb_desc ユーティリティを使用して同等の情報を取得できます。

  • DATA_FREE

    パーティションまたはサブパーティションに割り当てられているが使用されていないバイト数。

    NDB テーブルの場合は、ndb_desc ユーティリティを使用してこの情報を取得することもできます。

  • CREATE_TIME

    パーティションまたはサブパーティションが作成された時刻。

  • UPDATE_TIME

    パーティションまたはサブパーティションが最後に変更された時刻。

  • CHECK_TIME

    このパーティションまたはサブパーティションが属するテーブルが最後にチェックされた時刻。

    パーティション化された InnoDB テーブルの場合、値は常に NULL です。

  • CHECKSUM

    チェックサム値 (存在する場合)。それ以外の場合は NULL

  • PARTITION_COMMENT

    コメントのテキスト (パーティションにコメントがある場合)。 そうでない場合、この値は空です。

    パーティションコメントの最大長は 1024 文字として定義され、PARTITION_COMMENT カラムの表示幅も 1024 文字で、この制限に一致します。

  • NODEGROUP

    これは、パーティションが属するノードグループです。 これは「NDB Cluster」テーブルにのみ関連します。それ以外の場合、値は常に 0 です。

  • TABLESPACE_NAME

    パーティションが属するテーブルスペースの名前。 テーブルで NDB ストレージエンジンが使用されていないかぎり、値は常に DEFAULT です (このセクションの最後にある「ノート」を参照)。

メモ

  • PARTITIONS は非標準の INFORMATION_SCHEMA テーブルです。

  • NDB 以外のストレージエンジンを使用し、パーティション化されていないテーブルには、PARTITIONS テーブル内に 1 つの行があります。 ただし、PARTITION_NAME, SUBPARTITION_NAME, PARTITION_ORDINAL_POSITION, SUBPARTITION_ORDINAL_POSITION, PARTITION_METHOD, SUBPARTITION_METHOD, PARTITION_EXPRESSION, SUBPARTITION_EXPRESSION カラムおよび PARTITION_DESCRIPTION カラムの値はすべて NULL です。 また、この場合、PARTITION_COMMENT カラムは空白です。

  • 明示的にパーティション化されていない NDB テーブルには、NDB クラスタ内の各データノードの PARTITIONS テーブル内に 1 つの行があります。 そのような行ごとに、次の手順を実行します:

    • SUBPARTITION_NAME, SUBPARTITION_ORDINAL_POSITION, SUBPARTITION_METHOD, PARTITION_EXPRESSION, SUBPARTITION_EXPRESSION, CREATE_TIME, UPDATE_TIME, CHECK_TIME, CHECKSUM および TABLESPACE_NAME のカラムはすべて NULL です。

    • PARTITION_METHOD は常に AUTO です。

    • NODEGROUP カラムは default です。

    • PARTITION_EXPRESSION カラムと PARTITION_COMMENT カラムが空です。


関連キーワード:  テーブル, SCHEMA, INFORMATION, INNODB, PARTITION, TABLE, カラム, NDB, PARTITIONS, SUBPARTITION