Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

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

28.3.21 INFORMATION_SCHEMA PARTITIONS 表

PARTITIONS 表提供了关于表分区的信息。每行对应于分区表中的一个单独分区或子分区。有关分区表的更多信息,请参阅 第 26 章,分区

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

    其中一个值 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;

    PARTITION_EXPRESSION 列在 PARTITIONS 表行中显示 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 表,无论是否使用隐式或显式分区,该 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 表,该值始终为 default。对于使用其他存储引擎的分区表,该值也为 default。否则,该列为空。

  • TABLESPACE_NAME

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

备注

  • 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 列为空。