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_NAME,SUBPARTITION_ORDINAL_POSITION,SUBPARTITION_METHOD,PARTITION_EXPRESSION,SUBPARTITION_EXPRESSION,CREATE_TIME,UPDATE_TIME,CHECK_TIME,CHECKSUM和TABLESPACE_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. POJ2105【进制转化】

    直接瞎写就可以水过.我记得STL有很多好的函数,哎.水过去补多校的题. //#include <bits/stdc++.h> #include<cstdio> #include ...

  2. android 在一个应用中启动另一个应用

    在程序开发过程当中,常遇到需要启动另一个应用程序的情况,比如在点击软件的一个按钮可以打开地图软件. 如果既有包名又有主类的名字,那就好 办了, 直接像下面就行: [html]  Intent inte ...

  3. bzoj 3811: 玛里苟斯【线性基+期望dp】

    这个输出可是有点恶心啊--WA*inf,最后抄了别人的输出方法orz 还有注意会爆long long,要开unsigned long long 对于k==1,单独考虑每一位i,如果这一位为1则有0.5 ...

  4. 最短路之SPFA

    解决存在<<<负环>>>的图的单源最短路径: 判断有无负环: 如果某个点进入队列的次数超过N次则存在负环(SPFA无法处理带负环的图) 这里,只介绍用bfs(深搜) ...

  5. Educational Codeforces Round 19 A

    Description Given a positive integer n, find k integers (not necessary distinct) such that all these ...

  6. Jamie and Interesting Graph CodeForces - 916C

    http://codeforces.com/problemset/problem/916/C 好尬的题啊... #include<cstdio> #include<algorithm ...

  7. popoverController使用注意--转

    一.设置尺寸 提示:不建议,像下面这样吧popover的宽度和高度写死. 1 //1.新建一个内容控制器 2 YYMenuViewController *menuVc=[[YYMenuViewCont ...

  8. No space left on device

    No space left on device 数据库无法启动, 发现是内存没有清空导致. 处理过程: ipcs ipcrm  

  9. ionic之自定义图片

    一个好的app,必须都有很好的ui设计师来设计界面,增强客户的体验,表现自己本身公司的特色,但是,在ionic中有些是无法用img标签直接引入图片,只能通过设定的css之后引入css. 页面: < ...

  10. 获得select被选中option的value和text

    一:JavaScript原生的方法 1:得到select对象: var myselect=document.getElementById(“test”); 2:得到选中项的索引:var index=m ...