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
值之一
RANGE
,LIST
,HASH
,LINEAR HASH
,KEY
,或LINEAR KEY
;也就是“分区类型”中讨论的可用分区类型之一。SUBPARTITION_METHOD
值之一
HASH
,LINEAR HASH
,KEY
,或LINEAR KEY
;也就是“子分区”中讨论的可用子分区类型之一。PARTITION_EXPRESSION
创建表的当前分区方案的
CREATE TABLE
orALTER 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_EXPRESSIONFROM 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_METHOD
非RANGE
或的分区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_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_EXPRESSION
与PARTITION_COMMENT
列是空的。
- 的