`

mysql分区举例---子分区

 
阅读更多

 

mysql允许RANGE和LIST分区上再进行HASH和KEY的子分区
mysql> create table ts(a int,b date)
    -> partition by range(year(b))
    -> subpartition by hash(TO_DAYS(b))
    -> subpartitions 2(
    -> partition p0 values less than (1990),
    -> partition p1 values less than (2000),
    -> partition p2 values less than maxvalue
    -> );
Query OK, 0 rows affected (0.89 sec)
 
产生6个分区,3*2=6
 
mysql> select * from information_schema.partitions
    -> where table_schema=database() and
    -> table_name='ts'\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(b)
      SUBPARTITION_EXPRESSION: TO_DAYS(b)
        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: NULL
                  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(b)
      SUBPARTITION_EXPRESSION: TO_DAYS(b)
        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: NULL
                  UPDATE_TIME: NULL
                   CHECK_TIME: NULL
                     CHECKSUM: NULL
            PARTITION_COMMENT:
                    NODEGROUP: default
              TABLESPACE_NAME: NULL
*************************** 3. row ***************************
                TABLE_CATALOG: def
                 TABLE_SCHEMA: test
                   TABLE_NAME: ts
               PARTITION_NAME: p1
            SUBPARTITION_NAME: p1sp0
   PARTITION_ORDINAL_POSITION: 2
SUBPARTITION_ORDINAL_POSITION: 1
             PARTITION_METHOD: RANGE
          SUBPARTITION_METHOD: HASH
         PARTITION_EXPRESSION: year(b)
      SUBPARTITION_EXPRESSION: TO_DAYS(b)
        PARTITION_DESCRIPTION: 2000
                   TABLE_ROWS: 0
               AVG_ROW_LENGTH: 0
                  DATA_LENGTH: 16384
              MAX_DATA_LENGTH: NULL
                 INDEX_LENGTH: 0
                    DATA_FREE: 0
                  CREATE_TIME: NULL
                  UPDATE_TIME: NULL
                   CHECK_TIME: NULL
                     CHECKSUM: NULL
            PARTITION_COMMENT:
                    NODEGROUP: default
              TABLESPACE_NAME: NULL
*************************** 4. row ***************************
                TABLE_CATALOG: def
                 TABLE_SCHEMA: test
                   TABLE_NAME: ts
               PARTITION_NAME: p1
            SUBPARTITION_NAME: p1sp1
   PARTITION_ORDINAL_POSITION: 2
SUBPARTITION_ORDINAL_POSITION: 2
             PARTITION_METHOD: RANGE
          SUBPARTITION_METHOD: HASH
         PARTITION_EXPRESSION: year(b)
      SUBPARTITION_EXPRESSION: TO_DAYS(b)
        PARTITION_DESCRIPTION: 2000
                   TABLE_ROWS: 0
               AVG_ROW_LENGTH: 0
                  DATA_LENGTH: 16384
              MAX_DATA_LENGTH: NULL
                 INDEX_LENGTH: 0
                    DATA_FREE: 0
                  CREATE_TIME: NULL
                  UPDATE_TIME: NULL
                   CHECK_TIME: NULL
                     CHECKSUM: NULL
            PARTITION_COMMENT:
                    NODEGROUP: default
              TABLESPACE_NAME: NULL
*************************** 5. row ***************************
                TABLE_CATALOG: def
                 TABLE_SCHEMA: test
                   TABLE_NAME: ts
               PARTITION_NAME: p2
            SUBPARTITION_NAME: p2sp0
   PARTITION_ORDINAL_POSITION: 3
SUBPARTITION_ORDINAL_POSITION: 1
             PARTITION_METHOD: RANGE
          SUBPARTITION_METHOD: HASH
         PARTITION_EXPRESSION: year(b)
      SUBPARTITION_EXPRESSION: TO_DAYS(b)
        PARTITION_DESCRIPTION: MAXVALUE
                   TABLE_ROWS: 0
               AVG_ROW_LENGTH: 0
                  DATA_LENGTH: 16384
              MAX_DATA_LENGTH: NULL
                 INDEX_LENGTH: 0
                    DATA_FREE: 0
                  CREATE_TIME: NULL
                  UPDATE_TIME: NULL
                   CHECK_TIME: NULL
                     CHECKSUM: NULL
            PARTITION_COMMENT:
                    NODEGROUP: default
              TABLESPACE_NAME: NULL
*************************** 6. row ***************************
                TABLE_CATALOG: def
                 TABLE_SCHEMA: test
                   TABLE_NAME: ts
               PARTITION_NAME: p2
            SUBPARTITION_NAME: p2sp1
   PARTITION_ORDINAL_POSITION: 3
SUBPARTITION_ORDINAL_POSITION: 2
             PARTITION_METHOD: RANGE
          SUBPARTITION_METHOD: HASH
         PARTITION_EXPRESSION: year(b)
      SUBPARTITION_EXPRESSION: TO_DAYS(b)
        PARTITION_DESCRIPTION: MAXVALUE
                   TABLE_ROWS: 0
               AVG_ROW_LENGTH: 0
                  DATA_LENGTH: 16384
              MAX_DATA_LENGTH: NULL
                 INDEX_LENGTH: 0
                    DATA_FREE: 0
                  CREATE_TIME: NULL
                  UPDATE_TIME: NULL
                   CHECK_TIME: NULL
                     CHECKSUM: NULL
            PARTITION_COMMENT:
                    NODEGROUP: default
              TABLESPACE_NAME: NULL
6 rows in set (0.02 sec)
 
第二种方式:
 CREATE TABLE ts2 (
  a int(11) DEFAULT NULL,
  b date DEFAULT NULL
)
PARTITION BY RANGE (year(b))
SUBPARTITION BY HASH (to_days(b))
(PARTITION p0 VALUES LESS THAN (1990)
 (SUBPARTITION s0 ,
  SUBPARTITION s1 ),
 PARTITION p1 VALUES LESS THAN (2000)
 (SUBPARTITION s2 ,
  SUBPARTITION s3 ),
 PARTITION p2 VALUES LESS THAN MAXVAlUE
 (SUBPARTITION s4 ,
  SUBPARTITION s5 ));
 
几条SQL:
1.create table ts3 like ts2;
建立ts3表和ts2一模一样
2.alter table ts3 drop partition p0;
删除ts3表的p0分区
0
0
分享到:
评论

相关推荐

    详细介绍Mysql5.1分区技术

    详细介绍mysql5.1 分区技术,通过对list range hash key四种分区技术的举例阐述Mysql分区,18.2.1. RANGE分区 18.2.2. LIST分区 18.2.3. HASH分区 18.2.4. KEY分区 18.2.5. 子分区 18.2.6. MySQL分区处理NULL值的...

    MySQL运维-故障处理手册

    - 考虑使用分区表或者复制方案来降低单个表的负载。 3. **正常状态:** - **含义:**表示线程处于正常的等待状态,通常不需要特别处理。 **查看锁阻塞视图:** 1. **schema_table_lock_waits:** - **作用:**...

    MySQL面试题资源整理

    - 举例说明READ UNCOMMITTED,READ COMMITTED,REPEATABLE READ和SERIALIZABLE四种隔离级别。 5. **存储引擎** - InnoDB和MyISAM是MySQL中最常见的两个存储引擎,它们的区别是什么? - InnoDB支持哪些特性,如...

    MySQL最佳优化完美攻略

    - **扩展技术**: 探讨MySQL的各种扩展技术, 如分区、复制等。 #### 21. MySQL何时使用索引 - **索引策略**: 了解MySQL在哪些情况下会选择使用索引。 #### 22. MySQL何时不使用索引 - **索引限制**: 理解MySQL不...

    MySQL优化介绍和举例

    5. 减少子查询:子查询可能导致多次表扫描,考虑使用JOIN或临时表替代。 三、服务器端优化 1. 内存配置:合理设置缓冲池大小(如innodb_buffer_pool_size)以缓存数据和索引,减少磁盘I/O。 2. 连接管理:限制...

    mysql面试题 92问

    - 举例说明MySQL中的数值类型,如INT、FLOAT、DECIMAL等的用途。 - 何时应使用VARCHAR而不是CHAR? 3. **表操作** - 如何创建一个包含主键的表?解释主键的作用。 - 描述外键及其在数据库完整性中的角色。 - ...

    mysql面试题汇总一共100+道经典mysql面试题

    MySQL是世界上最受欢迎的关系型数据库管理系统之一,广泛应用于各种规模的企业和项目中。为了在面试中脱颖而出,理解并掌握MySQL的核心概念和技术至关重要。以下是一些基于MySQL的经典面试题和相关知识点的详细解析...

    mysql一些经典面试题

    9. **MySQL的分区和分表有什么区别?** 分区是将大表分成多个物理部分,每个部分有自己的索引,提高查询效率。分表是将一个大表分成多个逻辑上独立的小表,可以是垂直分割(按列分)或水平分割(按行分)。 10. **...

    mysql面试40道.zip

    1. **SQL基础知识**:面试通常会从SQL语言的基本语法开始,如SELECT语句、JOIN操作、子查询、聚合函数(COUNT, SUM, AVG, MAX, MIN)等。 2. **数据类型**:理解MySQL中的不同数据类型,如INT, VARCHAR, DATE, ...

    MySql中文帮助手册

    9. **性能优化**:手册会讲解如何通过查询优化、索引设计、分区和复制等手段提高MySQL的性能。 10. **安全性**:MySQL提供了多种用户管理、权限控制和加密功能。手册会阐述如何设置用户账户、授权和撤销权限,以及...

    云数据库十大经典案例.rar

    5. SQL优化:通过分析SQL执行计划,避免全表扫描,合理利用索引,减少JOIN操作,优化子查询等方式,提高SQL执行效率。 6. 数据备份与恢复:在云环境中,定期的数据备份和快速恢复策略是保障数据安全的重要手段。...

    Hive教程.pdf

    - **举例**: 复杂类型的使用示例。 - **array类型**: 存储有序的元素集合。 - **map类型**: 存储键值对。 - **struct类型**: 存储命名字段。 - **union类型**: 存储不同类型的数据。 - **字段分隔符**: 定义...

    Java面试所需八股文

    使用INNER JOIN代替子查询提高性能。 - **索引优化**:为常用查询条件创建合适的索引;合理利用复合索引;定期维护和优化索引结构。 - **表设计优化**:合理选择数据类型,减少存储空间;避免使用触发器,它们会增加...

    2018 PHP 最新面试题

    - 使用分区技术,如范围分区、列表分区等。 - 建立合理的索引策略,避免不必要的全表扫描。 - 调整MySQL配置参数,优化缓存机制。 - 定期清理旧数据或归档数据。 9. **MySQL慢查询问题** - 开启慢查询日志,...

    我的Ubuntu笔记

    - **软件安装**: 举例来说,DraftSight 软件的安装步骤包括: - 从 DraftSight 官网下载 `.deb` 包。 - 使用 Software Center 进行安装。 #### 四、Ubuntu 文件系统简介 - **文件夹结构**: Ubuntu 采用了标准的 ...

    数据库常用面试题目_基础题

    - 分布式数据库中的CAP定理是什么,如何权衡一致性、可用性和分区容错性? 10. **存储引擎** - 以MySQL为例,对比InnoDB和MyISAM存储引擎的差异。 - 何时应该选择InnoDB,何时应该选择MyISAM? 11. **安全性与...

    数据库性能优化培训PPT学习教案.pptx

    - 索引是查询优化的关键,访问数据主要有两种方式:顺序扫描(如全表扫描和分区扫描)和通过索引访问。索引访问可以进一步分为访问索引后访问表和只访问索引。 2. **表连接**: - MySQL采用嵌入式循环连接...

    SSD8 Exam1 网络分布式考试一答案

    - CAP定理:解析一致性、可用性和分区容错性之间的权衡,举例说明其应用场景。 - 分布式一致性:阐述Paxos算法或Raft算法的基本思想和实现方式。 - 分布式事务:讲解ACID特性,分析2PC(两阶段提交)及其局限性。...

Global site tag (gtag.js) - Google Analytics