文档首页
MySQL 8.4 参考手册
相关文档 下载本手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 参考手册  /  ...  /  INFORMATION_SCHEMA PARTITIONS 表

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;

    来自此表的分区在 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表的分区,无论表使用隐式分区还是显式分区,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表,此值始终为default。对于使用除NDB以外的存储引擎的分区表,该值也为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表中为NDB集群中的每个数据节点都有一行。对于每个这样的行

    • SUBPARTITION_NAMESUBPARTITION_ORDINAL_POSITIONSUBPARTITION_METHODPARTITION_EXPRESSIONSUBPARTITION_EXPRESSIONCREATE_TIMEUPDATE_TIMECHECK_TIMECHECKSUMTABLESPACE_NAME列均为NULL

    • PARTITION_METHOD始终为AUTO

    • NODEGROUP列为default

    • PARTITION_COMMENT列为空。