• 首页
  • css3教程
  • html5教程
  • jQuery手册
  • vue手册
  • php手册
  • MySQL手册
  • apache手册
  • redis手册
  • PARTITIONS表

    PARTITIONS表提供有关表分区的信息。该表中的每一行都对应于分区表的单个分区或子分区。有关分区表的更多信息,请参见分区

    PARTITIONS表包含以下列:

    • TABLE_CATALOG

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

    • TABLE_SCHEMA

      表所属的模式(数据库)的名称。

    • TABLE_NAME

      包含分区的表的名称。

    • PARTITION_NAME

      分区的名称。

    • SUBPARTITION_NAME

      如果PARTITIONS表行表示一个子分区,则为该子分区的名称;否则,为0。否则NULL

      对于NDB:此值始终为NULL

    • PARTITION_ORDINAL_POSITION

      所有分区的索引顺序与定义的顺序相同,1是分配给第一个分区的编号。索引可以随着添加,删除和重组分区而改变;考虑到任何索引更改,此列中显示的数字反映了当前订单。

    • SUBPARTITION_ORDINAL_POSITION

      给定分区内的子分区也按与在表中对分区进行索引的方式相同的方式进行索引和重新索引。

    • PARTITION_METHOD

      值之一RANGELISTHASHLINEAR HASHKEY,或LINEAR KEY;也就是“分区类型”中讨论的可用分区类型之一。

    • SUBPARTITION_METHOD

      值之一HASHLINEAR HASHKEY,或LINEAR KEY;也就是“子分区”中讨论的可用子分区类型之一。

    • PARTITION_EXPRESSION

      创建表的当前分区方案的CREATE TABLEor ALTER TABLE语句中使用的分区函数的表达式。

      例如,考虑test使用以下语句在数据库中创建的分区表:

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

      该表中分区PARTITION_EXPRESSIONPARTITIONS表行中的列显示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

      存储在此分区或子分区中的行的平均长度,以字节为单位。这与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群集表相关;否则,该值始终为0

    • TABLESPACE_NAME

      分区所属的表空间的名称。该值始终为DEFAULT,除非表使用NDB存储引擎(请参阅本节末尾的注释)。

    注意

    • PARTITIONS表是非标准INFORMATION_SCHEMA表。
    • 使用除以外的任何存储引擎NDB且未分区的PARTITIONS表在表中具有一行。然而,值PARTITION_NAMESUBPARTITION_NAMEPARTITION_ORDINAL_POSITIONSUBPARTITION_ORDINAL_POSITIONPARTITION_METHODSUBPARTITION_METHODPARTITION_EXPRESSIONSUBPARTITION_EXPRESSION,和PARTITION_DESCRIPTION列所有NULL。同样,PARTITION_COMMENT在这种情况下该列为空白。
    • 一个NDB未明确分区表具有在所述一个行PARTITIONS表中为NDB集群中的每个节点的数据。对于每个这样的行:

      • SUBPARTITION_NAMESUBPARTITION_ORDINAL_POSITIONSUBPARTITION_METHODPARTITION_EXPRESSIONSUBPARTITION_EXPRESSIONCREATE_TIMEUPDATE_TIMECHECK_TIMECHECKSUM,和TABLESPACE_NAME列所有NULL
      • PARTITION_METHOD始终AUTO
      • NODEGROUPdefault
      • PARTITION_EXPRESSIONPARTITION_COMMENT列是空的。