Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  ...  /  The INFORMATION_SCHEMA PARTITIONS Table

28.3.21 INFORMATION_SCHEMA PARTITIONS 表

PARTITIONS 表提供了关于表分区的信息。该表中的每一行对应于一个独立的分区或子分区。关于分区表的更多信息,请参见第26章,《分区》

PARTITIONS 表具有以下列:

  • TABLE_ Catalog

    该表所属的目录名称。该值始终为def

  • TABLE_SCHEMA

    该表所属的schema(数据库)名称。

  • TABLE_NAME

    包含分区的表名称。

  • PARTITION_NAME

    分区名称。

  • SUBPARTITION_NAME

    如果PARTITIONS 表行表示子分区,则子分区名称;否则为NULL

    对于NDB:该值始终为NULL

  • PARTITION_ORDINAL_POSITION

    所有分区都按定义的顺序索引,1 是第一个分区所分配的号码。索引可以在添加、删除和重新组织分区时发生变化;显示的号码反映当前顺序,考虑了任何索引变化。

  • SUBPARTITION_ORDINAL_POSITION

    在给定的分区中,子分区也以相同的方式索引和重新索引,就像表中的分区一样索引。

  • PARTITION_METHOD

    其中之一是RANGELISTHASHLINEAR HASHKEYLINEAR KEY之一;即讨论在第26.2节,“分区类型”中可用的分区类型之一。

  • SUBPARTITION_METHOD

    其中之一是HASHLINEAR HASHKEYLINEAR KEY之一;即讨论在第26.2.6节,“子分区”中可用的子分区类型之一。

  • PARTITION_EXPRESSION

    用于创建表当前分区方案的分区函数表达式,在CREATE TABLEALTER 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              |
    +----------------------+

    对于一个未明确分区的表,这个列始终是 NULL,无论存储引擎是什么。

  • SUBPARTITION_EXPRESSION

    这与定义一个表的子分区的子分区表达式相同,用于定义一个表的分区表达式 PARTITION_EXPRESSION

    如果表没有子分区,这个列是 NULL

  • PARTITION_DESCRIPTION

    这个列用于 RANGE 和 LIST 分区。对于一个 RANGE 分区,它包含分区的 VALUES LESS THAN 子句设置的值,可以是整数或 MAXVALUE。对于一个 LIST 分区,这个列包含分区的 VALUES IN 子句定义的值,是一组逗号分隔的整数值。

    对于分区的 PARTITION_METHOD 不是 RANGELIST 的,这个列始终是 NULL

  • TABLE_ROWS

    表中的行数。

    对于分区的InnoDB表,TABLE_ROWS列中的行数仅是一个用于SQL优化的估算值,并不总是精确的。

    对于NDB表,您也可以使用ndb_desc实用工具来获取该信息。

  • AVG_ROW_LENGTH

    该分区或子分区中存储的行的平均长度,以字节为单位。这与DATA_LENGTH除以TABLE_ROWS相同。

    对于NDB表,您也可以使用ndb_desc实用工具来获取该信息。

  • DATA_LENGTH

    该分区或子分区中存储的所有行的总长度,以字节为单位,即该分区或子分区中的总字节数。

    对于NDB表,您也可以使用ndb_desc实用工具来获取该信息。

  • MAX_DATA_LENGTH

    该分区或子分区可以存储的最大字节数。

    对于NDB表,您也可以使用ndb_desc实用工具来获取该信息。

  • INDEX_LENGTH

    该分区或子分区索引文件的长度,单位为字节。

    对于NDB表,无论使用隐式或显式分区,该列的值始终为0。然而,您可以使用ndb_desc实用工具来获取相应的信息。

  • DATA_FREE

    该分区或子分区已分配但未使用的字节数量。

    对于NDB表,您也可以使用ndb_desc实用工具来获取该信息。

  • CREATE_TIME

    该分区或子分区创建的时间。

  • UPDATE_TIME

    该分区或子分区最后修改的时间。

  • CHECK_TIME

    该分区或子分区所属表的最后一次检查时间。

    对于使用InnoDB存储引擎的分区表,这个值总是NULL

  • CHECKSUM

    如果存在 checksum 值,则显示该值;否则显示NULL

  • PARTITION_COMMENT

    如果分区有注释,则显示注释的文本;否则为空字符串。

    分区注释的最大长度定义为 1024 个字符,PARTITION_COMMENT 列的显示宽度也为 1024 个字符,以匹配这个限制。

  • NODEGROUP

    该分区所属的节点组。对于 NDB 集群表,这个值总是default。对于使用存储引擎其他于NDB的分区表,这个值也总是default。否则,该列为空。

  • TABLESPACE_NAME

    该分区所属的表空间名称。这个值总是DEFAULT,除非表使用NDB存储引擎(见本节末尾的Notes)。

  • PARTITIONS 是一个非标准的INFORMATION_SCHEMA表。

  • 使用除NDB外的存储引擎且未分区的表在PARTITIONS表中只有一个行。然而,PARTITION_NAMESUBPARTITION_NAMEPARTITION_ORDINAL_POSITIONSUBPARTITION_ORDINAL_POSITIONPARTITION_METHODSUBPARTITION_METHODPARTITION_EXPRESSIONSUBPARTITION_EXPRESSIONPARTITION_DESCRIPTION列的值都是NULL。此外,在这种情况下,PARTITION_COMMENT列是空的。

  • 一个未明确分区的NDB表在PARTITIONS表中每个数据节点都有一个行。对于每一行:

    • SUBPARTITION_NAMESUBPARTITION_ORDINAL_POSITIONSUBPARTITION_METHODPARTITION_EXPRESSIONSUBPARTITION_EXPRESSIONCREATE_TIMEUPDATE_TIMECHECK_TIMECHECKSUMTABLESPACE_NAME列的值都是NULL

    • PARTITION_METHOD总是AUTO

    • NODEGROUP列是default

    • PARTITION_COMMENT 列为空。