• 15. PARTITIONS


    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 2G
    *************************** 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)
    
  • 相关阅读:
    lucene.net的一点知识
    Lucene.net的全新体验
    天涯上令人肝肠寸断的100个签名
    第二天,把所有官方的demo都测试一遍
    DeBug 第一次实际使用~~
    [正式发布]库存管理系统v1.1!修复大量BUG,以及UI显示!
    !!终于把【库存管理的大致功能完成了!】
    第三天实战jsp&servlet的学生信息管理!
    ER图,数据库设计,烦恼
    第一天学习 easyUi
  • 原文地址:https://www.cnblogs.com/wanbin/p/9514635.html
Copyright © 2020-2023  润新知