该PARTITIONS
表提供有关表分区的信息。此表中的每一行对应于分区表的一个单独分区或子分区。有关分区表的更多信息,请参阅第 19 章,分区。
该PARTITIONS
表有以下列:
TABLE_CATALOG
表所属目录的名称。该值始终为
def
.TABLE_SCHEMA
表所属的数据库的名称。
TABLE_NAME
包含分区的表的名称。
PARTITION_NAME
分区的名称。
SUBPARTITION_NAME
如果
PARTITIONS
表行代表一个子分区,子分区的名称;否则NULL
。PARTITION_ORDINAL_POSITION
所有分区的索引顺序与它们定义的顺序相同,
1
编号是分配给第一个分区的编号。索引可以随着分区的添加、删除和重组而改变;此列显示的数字反映了当前顺序,并考虑了任何索引更改。SUBPARTITION_ORDINAL_POSITION
给定分区内的子分区也以与表内分区索引相同的方式进行索引和重新索引。
PARTITION_METHOD
值
RANGE
,LIST
,HASH
,LINEAR HASH
,KEY
, 或 之一LINEAR KEY
;也就是说, 第 19.2 节“分区类型”中讨论的可用分区类型之一。SUBPARTITION_METHOD
值
HASH
,LINEAR HASH
,KEY
, 或之一LINEAR KEY
;也就是说, 第 19.2.6 节“子分区”中讨论的可用子分区类型之一。PARTITION_EXPRESSION
创建表的当前分区方案 的
CREATE TABLE
or 语句中 使用的分区函数的表达式 。ALTER 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 | +----------------------+
对于
NDB
未显式分区的表,此列为空。对于使用其他存储引擎且未分区的表,此列为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
分区或子分区的创建时间。
在 MySQL 5.6.25 之前,对于分区
InnoDB
表,此列始终为NULL
. 正确的创建时间显示在 MySQL 5.6.25 及更高版本中。(漏洞 #17299181,漏洞 #69990)UPDATE_TIME
上次修改分区或子分区的时间。
对于分区
InnoDB
表,该值始终为NULL
。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
对于每个这样的行:,
SUBPARTITION_NAME
,SUBPARTITION_ORDINAL_POSITION
,SUBPARTITION_METHOD
'SUBPARTITION_EXPRESSION
,CREATE_TIME
,UPDATE_TIME
,CHECK_TIME
,CHECKSUM
和TABLESPACE_NAME
列都是NULL
。PARTITION_METHOD
总是KEY
。 _该
NODEGROUP
列是default
。和
PARTITION_EXPRESSION
列为PARTITION_COMMENT
空。