该 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;
该
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
不是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
表,该值始终为default
。对于使用其他存储引擎的分区表,该值也为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
、PARTITION_EXPRESSION
、SUBPARTITION_EXPRESSION
、CREATE_TIME
、UPDATE_TIME
、CHECK_TIME
、CHECKSUM
和TABLESPACE_NAME
列的值都是NULL
。 -
该
PARTITION_METHOD
总是AUTO
。 -
该
NODEGROUP
列是default
。 -
该
PARTITION_COMMENT
列为空。
-