-
Notifications
You must be signed in to change notification settings - Fork 111
PARTITIONS
xiaoboluo768 edited this page Jun 7, 2020
·
2 revisions
- 该表提供查询关于分区表的信息
- 该表为InnoDB引擎临时表
- 表定义语句
CREATE TEMPORARY TABLE `PARTITIONS` (
`TABLE_CATALOG` varchar(512) NOT NULL DEFAULT '',
`TABLE_SCHEMA` varchar(64) NOT NULL DEFAULT '',
`TABLE_NAME` varchar(64) NOT NULL DEFAULT '',
`PARTITION_NAME` varchar(64) DEFAULT NULL,
`SUBPARTITION_NAME` varchar(64) DEFAULT NULL,
`PARTITION_ORDINAL_POSITION` bigint(21) unsigned DEFAULT NULL,
`SUBPARTITION_ORDINAL_POSITION` bigint(21) unsigned DEFAULT NULL,
`PARTITION_METHOD` varchar(18) DEFAULT NULL,
`SUBPARTITION_METHOD` varchar(12) DEFAULT NULL,
`PARTITION_EXPRESSION` longtext,
`SUBPARTITION_EXPRESSION` longtext,
`PARTITION_DESCRIPTION` longtext,
`TABLE_ROWS` bigint(21) unsigned NOT NULL DEFAULT '0',
`AVG_ROW_LENGTH` bigint(21) unsigned NOT NULL DEFAULT '0',
`DATA_LENGTH` bigint(21) unsigned NOT NULL DEFAULT '0',
`MAX_DATA_LENGTH` bigint(21) unsigned DEFAULT NULL,
`INDEX_LENGTH` bigint(21) unsigned NOT NULL DEFAULT '0',
`DATA_FREE` bigint(21) unsigned NOT NULL DEFAULT '0',
`CREATE_TIME` datetime DEFAULT NULL,
`UPDATE_TIME` datetime DEFAULT NULL,
`CHECK_TIME` datetime DEFAULT NULL,
`CHECKSUM` bigint(21) unsigned DEFAULT NULL,
`PARTITION_COMMENT` varchar(80) NOT NULL DEFAULT '',
`NODEGROUP` varchar(12) NOT NULL DEFAULT '',
`TABLESPACE_NAME` varchar(64) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
- 表字段含义(该表中所有字段都为 "MySQL extension" 列)
- TABLE_CATALOG:这个列总是def
- TABLE_SCHEMA:表示该分区表所属的数据库的名称
- TABLE_NAME:表示该分区表的表名称
- PARTITION_NAME:表示分区表的分区名称
- SUBPARTITION_NAME:表示分区表的某个分区的子分区名称,如果分区表不存在子分区,则列值为NULL
- PARTITION_ORDINAL_POSITION:表示分区表的所有分区的索引编号,该编号的大小与定义的顺序相同,如:1表示第一个分区的编号。索引编号会随着分区的添加、删除和重组而改变。
- SUBPARTITION_ORDINAL_POSITION:与PARTITION_ORDINAL_POSITION字段含义类似,该字段表示子分区的索引编号和定义顺序
- PARTITION_METHOD:表示分区表的分区函数类型,有效值为:RANGE、LIST、HASH、LINEAR HASH、KEY、LINEAR KEY
- SUBPARTITION_METHOD:表示分区表的子分区的函数类型,有效值为:HASH、LINEAR HASH、KEY、LINEAR KEY
- PARTITION_EXPRESSION:表示分区函数中的分区表达式,在创建分区表或修改分区表的分区函数时指定,例如:指定了分区表达式为 "PARTITION BY HASH(c1 + c2)",则在该字段中记录表达式 "c1 + c2"
- SUBPARTITION_EXPRESSION:与PARTITION_EXPRESSION字段含义类型,表示分区表的子分区的分区函数表达式,如果分区表中没有子分区,则该字段为NULL
- PARTITION_DESCRIPTION:表示RANGE和LIST分区定义的分区定义值。对于RANGE分区,它表示每个分区的VALUES LESS THAN子句中设置的值,该值可以是整数或MAXVALUE。对于LIST分区,它表示每个分区的VALUES IN子句中定义的值,该值为逗号分隔的整数值列表。另外,对于非range和list分区的其他分区类型,该字段为NULL
- TABLE_ROWS:分区中的记录行数,对于InnoDB分区表,TABLE_ROWS列值只是SQL优化中使用的估计值,并不是精确值
- AVG_ROW_LENGTH:存储在分区或子分区中的行的平均长度(以字节为单位),与DATA_LENGTH列值/TABLE_ROWS列值的结果值相同
- DATA_LENGTH:存储在分区或子分区中的所有行记录的总长度(以字节为单位),即存储在分区或子分区中的总数据字节数
- MAX_DATA_LENGTH:可以存储在分区或子分区中的最大数据字节数
- INDEX_LENGTH:分区或子分区的索引文件的长度(以字节为单位)
- DATA_FREE:分配给分区或子分区但未使用的空间大小字节数
- CREATE_TIME:创建分区或子分区的时间
- UPDATE_TIME:分区或子分区上次修改的时间
- CHECK_TIME:最后一次检查分区或子分区的事件,对于InnoDB分区表,该列值总是为NULL
- CHECKSUM:如果有进行checksum校验,则该列值表示校验和值,否则,该列值为NULL
- PARTITION_COMMENT:表示分区的注释文本,注意:在MySQL 5.7中,分区注释的最大长度定义为1024个字符,PARTITION_COMMENT列的显示宽度也是1024个字符。默认值为空串
- NODEGROUP:表示分区所属的节点组。与NDB Cluster表有关,如果非NDB Cluster表则该列值为0
- TABLESPACE_NAME:分区表的表空间名称。该列值始终为DEFAULT
- PS:对于非分区表,在INFORMATION_SCHEMA.PARTITIONS中只有一条记录。但是,PARTITION_NAME、SUBPARTITION_NAME、PARTITION_ORDINAL_POSITION、SUBPARTITION_ORDINAL_POSITION、PARTITION_METHOD、SUBPARTITION_METHOD、PARTITION_EXPRESSION、SUBPARTITION_EXPRESSION、PARTITION_DESCRIPTION列值均为NULL (PARTITION_COMMENT列值为空串)
- 表记录内容示例(该表中的每行记录对应着一个分区表或分区表的某个子分区表)
# 创建一个示例分区表
root@localhost : luoxiaobo 03:18:28> use luoxiaobo
Database changed
root@localhost : luoxiaobo 03:18:31> CREATE TABLE test_partition(
-> d1 INT,
-> d2 INT,
-> d3 VARCHAR(25)
-> )
-> PARTITION BY HASH(d1 + d2)
-> PARTITIONS 4;
Query OK, 0 rows affected (0.03 sec)
# 查询分区表信息
root@localhost : luoxiaobo 03:19:21> select * from information_schema.PARTITIONS where TABLE_NAME='test_partition'\G;
*************************** 1. row ***************************
TABLE_CATALOG: def
TABLE_SCHEMA: luoxiaobo
TABLE_NAME: test_partition
PARTITION_NAME: p0
SUBPARTITION_NAME: NULL
PARTITION_ORDINAL_POSITION: 1
SUBPARTITION_ORDINAL_POSITION: NULL
PARTITION_METHOD: HASH
SUBPARTITION_METHOD: NULL
PARTITION_EXPRESSION: d1 + d2
SUBPARTITION_EXPRESSION: NULL
PARTITION_DESCRIPTION: NULL
TABLE_ROWS: 0
AVG_ROW_LENGTH: 0
DATA_LENGTH: 16384
MAX_DATA_LENGTH: NULL
INDEX_LENGTH: 0
DATA_FREE: 0
CREATE_TIME: 2018-01-27 15:18:32
UPDATE_TIME: NULL
CHECK_TIME: NULL
CHECKSUM: NULL
PARTITION_COMMENT:
NODEGROUP: default
TABLESPACE_NAME: NULL
............
4 row in set (0.01 sec)
上一篇:PARAMETERS表 |下一篇:PLUGINS表
- 验证、测试、整理:罗小波
- QQ:309969177
- 提示:本系列文章的主体结构遵循Oracle MySQL 官方 5.7 手册中,关于information_schema、mysql schema、performance_schema、sys schema的章节结构体系,并额外添加了一些验证、测试数据。鉴于本人精力和能力有限,难免出现一些纰漏,欢迎大家踊跃指正!