15. PARTITIONS

PARTITIONS表提供有关表分区的信息。 此表中的每一行对应于分区表的单个分区或子分区。 有关分区表的更多信息,请参见分区

PARTITIONS表有以下列:

  • TABLE_CATALOG :表所属目录的名称。 该值始终为def。
  • TABLE_SCHEMA :表所属schema(database)名称
  • 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之一; 参考“分区类型”。
  • SUBPARTITION_METHOD :值HASH, LINEAR HASH, KEY, 或者 LINEAR KEY之一,参考Subpartitioning
  • PARTITION_EXPRESSION :创建表的当前分区方案的CREATE TABLE或ALTER TABLE语句中使用的分区函数的表达式。

    例如,考虑使用以下语句在测试数据库中创建的分区表:
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 |
+----------------------+
  • 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 Cluster表相关; 否则,该值始终为0。
  • TABLESPACE_NAME :分区所属的表空间的名称。 除非表使用NDB存储引擎,否则该值始终为DEFAULT(请参阅本节末尾的注释)。

Notes

  • 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_NAMESUBPARTITION_ORDINAL_POSITIONSUBPARTITION_METHODPARTITION_EXPRESSIONSUBPARTITION_EXPRESSIONCREATE_TIMEUPDATE_TIMECHECK_TIMECHECKSUMTABLESPACE_NAME列均为NULL。

    • PARTITION_METHOD始终是KEY。

    • NODEGROUP列是默认值。

    • PARTITION_EXPRESSION和PARTITION_COMMENT列为空。

示例

CREATE TABLE ts (id INT, purchased DATE)
PARTITION BY RANGE( YEAR(purchased) )
SUBPARTITION BY HASH( TO_DAYS(purchased) )
SUBPARTITIONS 2 (
PARTITION p0 VALUES LESS THAN (1990),
PARTITION p1 VALUES LESS THAN (2000),
PARTITION p2 VALUES LESS THAN MAXVALUE
);
mysql> select * from information_schema.partitions where TABLE_SCHEMA='test' and table_name='ts' limit 2\G
*************************** 1. row ***************************
TABLE_CATALOG: def
TABLE_SCHEMA: test
TABLE_NAME: ts
PARTITION_NAME: p0
SUBPARTITION_NAME: p0sp0
PARTITION_ORDINAL_POSITION: 1
SUBPARTITION_ORDINAL_POSITION: 1
PARTITION_METHOD: RANGE
SUBPARTITION_METHOD: HASH
PARTITION_EXPRESSION: YEAR(purchased)
SUBPARTITION_EXPRESSION: TO_DAYS(purchased)
PARTITION_DESCRIPTION: 1990
TABLE_ROWS: 0
AVG_ROW_LENGTH: 0
DATA_LENGTH: 16384
MAX_DATA_LENGTH: NULL
INDEX_LENGTH: 0
DATA_FREE: 0
CREATE_TIME: 2018-08-15 11:09:38
UPDATE_TIME: NULL
CHECK_TIME: NULL
CHECKSUM: NULL
PARTITION_COMMENT:
NODEGROUP: default
TABLESPACE_NAME: NULL
*************************** 2. row ***************************
TABLE_CATALOG: def
TABLE_SCHEMA: test
TABLE_NAME: ts
PARTITION_NAME: p0
SUBPARTITION_NAME: p0sp1
PARTITION_ORDINAL_POSITION: 1
SUBPARTITION_ORDINAL_POSITION: 2
PARTITION_METHOD: RANGE
SUBPARTITION_METHOD: HASH
PARTITION_EXPRESSION: YEAR(purchased)
SUBPARTITION_EXPRESSION: TO_DAYS(purchased)
PARTITION_DESCRIPTION: 1990
TABLE_ROWS: 0
AVG_ROW_LENGTH: 0
DATA_LENGTH: 16384
MAX_DATA_LENGTH: NULL
INDEX_LENGTH: 0
DATA_FREE: 0
CREATE_TIME: 2018-08-15 11:09:38
UPDATE_TIME: NULL
CHECK_TIME: NULL
CHECKSUM: NULL
PARTITION_COMMENT:
NODEGROUP: default
TABLESPACE_NAME: NULL
2 rows in set (0.00 sec)

15. PARTITIONS的更多相关文章

  1. MySQL全面瓦解29:使用Partition功能实现水平分区

    1 回顾 上一节我们详细讲解了如何对数据库进行分区操作,包括了 垂直拆分(Scale Up 纵向扩展)和 水平拆分(Scale Out 横向扩展) ,同时简要整理了水平分区的几种策略,现在来回顾一下. ...

  2. 缓解 SQL Server has encountered 727 occurrence(s) of I/O requests taking longer than 15 seconds

    sql server 会记录IO等待时间超过15 seconds的请求,这时application会有 time out 现象,dba需要判断是workload,concurrecy 所致还是sql ...

  3. PostgreSQL Partitions

    why we need partitions The first and most demanding reason to use partitions in a database is to inc ...

  4. mypc--------------->lspci,lsusb,meminfo cpuinfo ioports filesystems interrupts mounts net partitions pagetypeinfo slabinfo timer_list uptime version zoneinfo 等配置信息

    [user@username home]$ lspci00:00.0 Host bridge: Intel Corporation 4th Gen Core Processor DRAM Contro ...

  5. 15.RDD 创建内幕解析

    第15课:RDD创建内幕 RDD的创建方式 Spark应用程序运行过程中,第一个RDD代表了Spark应用程序输入数据的来源,之后通过Trasformation来对RDD进行各种算子的转换,来实现具体 ...

  6. 【Spark深入学习 -15】Spark Streaming前奏-Kafka初体验

    ----本节内容------- 1.Kafka基础概念 1.1 出世背景 1.2 基本原理 1.2.1.前置知识 1.2.2.架构和原理 1.2.3.基本概念 1.2.4.kafka特点 2.Kafk ...

  7. 15 MySQL--索引

    索引: http://www.cnblogs.com/linhaifeng/articles/7356064.html http://www.cnblogs.com/linhaifeng/articl ...

  8. mysql数据库优化课程---15、mysql优化步骤

    mysql数据库优化课程---15.mysql优化步骤 一.总结 一句话总结:索引优化最立竿见影 1.mysql中最常用最立竿见影的优化是什么? 索引优化 索引优化,不然有多少行要扫描多少次,1亿行大 ...

  9. poj 3790 Recursively Palindromic Partitions

    /*摘抄自博客:Recursively Palindromic Partitions Time Limit: 1000MS Memory Limit: 65536K Total Submissions ...

随机推荐

  1. poj 3683 Priest John's Busiest Day【2-SAT+tarjan+拓扑】

    转换成2-SAT模型,建边是如果时间(i,j)冲突就连边(i,j'),其他同理 tarjan缩点,判可行性 返图拓扑,输出方案 #include<iostream> #include< ...

  2. 【CodeForces - 501B 】Misha and Changing Handles(map)

    Misha and Changing Handles CodeForces原题是英文,这里就直接上中文好了,翻译不是太给力,但是不影响做题 ^▽^ Description  神秘的三角洲里还有一个传说 ...

  3. CSS选择器优先级【转】

    样式的优先级 多重样式(Multiple Styles):如果外部样式.内部样式和内联样式同时应用于同一个元素,就是使多重样式的情况. 一般情况下,优先级如下: (外部样式)External styl ...

  4. (021)VMWare副虚拟磁盘和子虚拟磁盘id不匹配

    问题:因为某种原因,修改了VM虚拟机的父磁盘内容,导致开机时出现如下错误: 父虚拟磁盘在子虚拟磁盘创建之后被修改过.父虚拟磁盘的内容 ID 与子虚拟磁盘中对应的父内容 ID 不匹配打不开磁盘“***. ...

  5. C. Bear and Colors 区间枚举的技巧

    http://codeforces.com/problemset/problem/673/C 先说一个枚举区间的技巧,枚举前缀,不要枚举后缀. 就是下面这个代码是不好的 ; i <= n; ++ ...

  6. APPCLOUD禁止滚动条

  7. P1116 车厢重组

    题目描述 在一个旧式的火车站旁边有一座桥,其桥面可以绕河中心的桥墩水平旋转.一个车站的职工发现桥的长度最多能容纳两节车厢,如果将桥旋转180度,则可以把相邻两节车厢的位置交换,用这种方法可以重新排列车 ...

  8. [BZOJ2761][JLOI2011]不重复数字 暴力

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2761 直接暴力. #include<cstdio> #include<c ...

  9. T4312 最大出栈顺序

    题目描述 给你一个栈和n个数,按照n个数的顺序入栈,你可以选择在任何时候将数 出栈,使得出栈的序列的字典序最大. 输入输出格式 输入格式: 输入共2行. 第一行个整数n,表示入栈序列长度. 第二行包含 ...

  10. android xml中使用include标签

    在一个项目中,我们可能会在xml中局部用到相同的布局,如果每次都在xml中重写这些布局,代码显得很冗余.重复的复制黏贴也很烦恼,所以,我们把这些相同的局部布局写成一个单独的xml模块,需要用到这些布局 ...