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以下值之一:
RANGE、LIST、HASH、LINEAR HASH、KEY或LINEAR KEY;也就是说,是 第 26.2 节, “分区类型” 中讨论的可用分区类型之一。SUBPARTITION_METHOD以下值之一:
HASH、LINEAR HASH、KEY或LINEAR KEY;也就是说,是 第 26.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 | +----------------------+对于未显式分区的表,此列始终为
NULL,与存储引擎无关。SUBPARTITION_EXPRESSION这与用于定义表的子分区的子分区表达式的
PARTITION_EXPRESSION用于定义表的子分区的子分区表达式的功能相同。如果表没有子分区,则此列为
NULL。PARTITION_DESCRIPTION此列用于 RANGE 和 LIST 分区。对于
RANGE分区,它包含分区VALUES LESS THAN子句中设置的值,该值可以是整数或MAXVALUE。对于LIST分区,此列包含分区VALUES IN子句中定义的值,该子句是逗号分隔的整数列表。对于
PARTITION_METHOD不是RANGE或LIST的分区,此列始终为NULL。TABLE_ROWS分区中的表行数。
对于已分区的
InnoDB表,TABLE_ROWS列中给出的行数只是一个用于 SQL 优化的估计值,可能并不总是准确的。AVG_ROW_LENGTH存储在此分区或子分区中的行的平均长度(以字节为单位)。这与
DATA_LENGTH除以TABLE_ROWS相同。DATA_LENGTH存储在此分区或子分区中的所有行的总长度(以字节为单位);也就是说,存储在分区或子分区中的总字节数。
MAX_DATA_LENGTH可以存储在此分区或子分区中的最大字节数。
INDEX_LENGTH此分区或子分区索引文件的大小(以字节为单位)。
对于使用
NDB表的分区,无论表使用隐式分区还是显式分区,INDEX_LENGTH列的值始终为0。但是,可以使用ndb_desc实用程序获取等效信息。DATA_FREE分配给分区或子分区但未使用字节数。
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_NAME、SUBPARTITION_NAME、PARTITION_ORDINAL_POSITION、SUBPARTITION_ORDINAL_POSITION、PARTITION_METHOD、SUBPARTITION_METHOD、PARTITION_EXPRESSION、SUBPARTITION_EXPRESSION和PARTITION_DESCRIPTION列的值均为NULL。此外,在这种情况下,PARTITION_COMMENT列为空。一个未显式分区的
NDB表在PARTITIONS表中为NDB集群中的每个数据节点都有一行。对于每个这样的行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_COMMENT列为空。