`

MySQL表分区功能基础

阅读更多
创建分区表

    CREATE TABLE `表名` (  
        `EQUIPMENTID` char(17) NOT NULL,  
        `ATTRIBUTEID` char(4) NOT NULL,  
        `VALUE` varchar(20) NOT NULL,  
        `COLLECTTIME` datetime NOT NULL 
    )   
    ENGINE=InnoDB (适用大部分引擎,可根据需要调整)  
    DEFAULT CHARSET=gbk(编码可根据需要修改)   
    PARTITION BY RANGE (to_days(COLLECTTIME))   
    (PARTITION pmin VALUES LESS THAN (to_days('2010-01-01')),  
    PARTITION p201001 VALUES LESS THAN (to_days('2010-02-01')) ,   
    PARTITION p201002 VALUES LESS THAN (to_days('2010-03-01')) ,  
    PARTITION p201003 VALUES LESS THAN (to_days('2010-04-01')) ,   
    PARTITION p201004 VALUES LESS THAN (to_days('2010-05-01')) ,  
    PARTITION p201005 VALUES LESS THAN (to_days('2010-06-01')) ,   
    PARTITION p201006 VALUES LESS THAN (to_days('2010-07-01')) ,  
    PARTITION p201007 VALUES LESS THAN (to_days('2010-08-01')) ,   
    PARTITION p201008 VALUES LESS THAN (to_days('2010-09-01')) ,  
    PARTITION p201009 VALUES LESS THAN (to_days('2010-10-01')) ,   
    PARTITION p201010 VALUES LESS THAN (to_days('2010-11-01')),  
    PARTITION p201011 VALUES LESS THAN (to_days('2010-12-01')),  
    PARTITION p201012 VALUES LESS THAN (to_days('2011-01-01')),  
    PARTITION p201101 VALUES LESS THAN (to_days('2011-02-01')),  
    PARTITION p201102 VALUES LESS THAN (to_days('2011-03-01')),  
    PARTITION p201103 VALUES LESS THAN (to_days('2011-04-01')),  
    PARTITION p201104 VALUES LESS THAN (to_days('2011-05-01')),  
    PARTITION p201105 VALUES LESS THAN (to_days('2011-06-01')),  
    PARTITION p201106 VALUES LESS THAN (to_days('2011-07-01')),  
    PARTITION p201107 VALUES LESS THAN (to_days('2011-08-01')),  
    PARTITION p201108 VALUES LESS THAN (to_days('2011-09-01')),  
    PARTITION p201109 VALUES LESS THAN (to_days('2011-10-01')),  
    PARTITION p201110 VALUES LESS THAN (to_days('2011-11-01')),  
    PARTITION p201111 VALUES LESS THAN (to_days('2011-12-01')),  
    PARTITION p201112 VALUES LESS THAN (to_days('2012-01-01')),  
    PARTITION pmax VALUES LESS THAN MAXVALUE );  


为现有表创建分区

    alter table 表名  
    PARTITION BY RANGE (to_days(COLLECTTIME))   
    (PARTITION pmin VALUES LESS THAN (to_days('2010-01-01')),  
    PARTITION p201001 VALUES LESS THAN (to_days('2010-02-01')) ,   
    PARTITION p201002 VALUES LESS THAN (to_days('2010-03-01')) ,  
    PARTITION p201003 VALUES LESS THAN (to_days('2010-04-01')) ,   
    PARTITION p201004 VALUES LESS THAN (to_days('2010-05-01')) ,  
    PARTITION p201005 VALUES LESS THAN (to_days('2010-06-01')) ,   
    PARTITION p201006 VALUES LESS THAN (to_days('2010-07-01')) ,  
    PARTITION p201007 VALUES LESS THAN (to_days('2010-08-01')) ,   
    PARTITION p201008 VALUES LESS THAN (to_days('2010-09-01')) ,  
    PARTITION p201009 VALUES LESS THAN (to_days('2010-10-01')) ,   
    PARTITION p201010 VALUES LESS THAN (to_days('2010-11-01')),  
    PARTITION p201011 VALUES LESS THAN (to_days('2010-12-01')),  
    PARTITION p201012 VALUES LESS THAN (to_days('2011-01-01')),  
    PARTITION p201101 VALUES LESS THAN (to_days('2011-02-01')),  
    PARTITION p201102 VALUES LESS THAN (to_days('2011-03-01')),  
    PARTITION p201103 VALUES LESS THAN (to_days('2011-04-01')),  
    PARTITION p201104 VALUES LESS THAN (to_days('2011-05-01')),  
    PARTITION p201105 VALUES LESS THAN (to_days('2011-06-01')),  
    PARTITION p201106 VALUES LESS THAN (to_days('2011-07-01')),  
    PARTITION p201107 VALUES LESS THAN (to_days('2011-08-01')),  
    PARTITION p201108 VALUES LESS THAN (to_days('2011-09-01')),  
    PARTITION p201109 VALUES LESS THAN (to_days('2011-10-01')),  
    PARTITION p201110 VALUES LESS THAN (to_days('2011-11-01')),  
    PARTITION p201111 VALUES LESS THAN (to_days('2011-12-01')),  
    PARTITION p201112 VALUES LESS THAN (to_days('2012-01-01')),  
    PARTITION pmax VALUES LESS THAN MAXVALUE );  


如果表中已有数据,分区时会自动进行分区存储,不必担心数据丢失或者手动分类数据.

删除表中的指定分区

    ALTER TABLE 表名 DROP PARTITION 分区名;  



追加表分区

    ALTER TABLE 表名 DROP PARTITION pmax;  
    ALTER TABLE 表名  
    ADD PARTITION (  
    PARTITION p201201 VALUES LESS THAN (to_days('2012-2-1')),  
    PARTITION pmax VALUES LESS THAN MAXVALUE);  


查看标分区信息

    SELECT   
            partition_name part,    
            partition_expression expr,    
            partition_description descr,    
            table_rows    
    FROM   
            INFORMATION_SCHEMA.partitions    
    WHERE   
            TABLE_SCHEMA = schema()   
            AND TABLE_NAME='表名';  

查看查询语句涉及分区信息

    explain partitions  
    select … from 表名 where …;  


该操作只查看查询语句相关的分区信息,不会返回查询结果.
分享到:
评论

相关推荐

    新版 MySQL DBA 高级视频 基于MySQL 5.7 MySQL 8.0版本.rar

    │ 第十一课MySQL表分区8.0.pdf │ 第十七课Elasticsearch分享-张亚V4.pdf │ 第十三课MySQL5.7高可用架构之Mycat.pdf │ 第十三课MySQL8.0高可用架构之Mycat.pdf │ 第十九课MySQL备份和恢复.pdf │ 第十二课MySQL...

    MySQL 5.1中文手冊

    5.4. mysql_fix_privilege_tables:升级MySQL系统表 5.5. MySQL服务器关机进程 5.6. 一般安全问题 5.6.1. 通用安全指南 5.6.2. 使MySQL在攻击者面前保持安全 5.6.3. Mysqld安全相关启动选项 5.6.4. LOAD DATA LOCAL...

    MySQL 5.1官方简体中文参考手册

    5.4. mysql_fix_privilege_tables:升级MySQL系统表 5.5. MySQL服务器关机进程 5.6. 一般安全问题 5.6.1. 通用安全指南 5.6.2. 使MySQL在攻击者面前保持安全 5.6.3. Mysqld安全相关启动选项 5.6.4. LOAD DATA LOCAL...

    MySQL 5.1参考手册

    5.4. mysql_fix_privilege_tables:升级MySQL系统表 5.5. MySQL服务器关机进程 5.6. 一般安全问题 5.6.1. 通用安全指南 5.6.2. 使MySQL在攻击者面前保持安全 5.6.3. Mysqld安全相关启动选项 5.6.4. LOAD DATA LOCAL...

    mysql5.1中文手册

    mysql_fix_privilege_tables:升级MySQL系统表 5.5. MySQL服务器关机进程 5.6. 一般安全问题 5.6.1. 通用安全指南 5.6.2. 使MySQL在攻击者面前保持安全 5.6.3. Mysqld安全相关启动选项 5.6.4. ...

    MySQL 5.1参考手册中文版

    5.4. mysql_fix_privilege_tables:升级MySQL系统表 5.5. MySQL服务器关机进程 5.6. 一般安全问题 5.6.1. 通用安全指南 5.6.2. 使MySQL在攻击者面前保持安全 5.6.3. Mysqld安全相关启动选项 5.6.4. LOAD DATA ...

    MySQL 5.1参考手册 (中文版)

    5.4. mysql_fix_privilege_tables:升级MySQL系统表 5.5. MySQL服务器关机进程 5.6. 一般安全问题 5.6.1. 通用安全指南 5.6.2. 使MySQL在攻击者面前保持安全 5.6.3. Mysqld安全相关启动选项 5.6.4. LOAD DATA LOCAL...

    MYSQL中文手册

    5.4. mysql_fix_privilege_tables:升级MySQL系统表 5.5. MySQL服务器关机进程 5.6. 一般安全问题 5.6.1. 通用安全指南 5.6.2. 使MySQL在攻击者面前保持安全 5.6.3. Mysqld安全相关启动选项 5.6.4. LOAD DATA ...

    mysql官方中文参考手册

    5.4. mysql_fix_privilege_tables:升级MySQL系统表 5.5. MySQL服务器关机进程 5.6. 一般安全问题 5.6.1. 通用安全指南 5.6.2. 使MySQL在攻击者面前保持安全 5.6.3. Mysqld安全相关启动选项 5.6.4. LOAD DATA LOCAL...

    2017最新老男孩MySQL高级专业DBA实战课程全套【清晰不加密】,看完教程月入40万没毛病

    第一部 MySQL基础入门(21节) 01-老男孩运维DBA课程开班.avi 02-数据库概念介绍.avi 03-数据库种类介绍及关系型数据库原理.avi 04-非关系型数据库介绍.avi 05-非关系型数据库种类介绍.avi 06-关系型数据库产品介绍...

    MySQL5.1参考手册官方简体中文版

    5.4. mysql_fix_privilege_tables:升级MySQL系统表 5.5. MySQL服务器关机进程 5.6. 一般安全问题 5.6.1. 通用安全指南 5.6.2. 使MySQL在攻击者面前保持安全 5.6.3. Mysqld安全相关启动选项 5.6.4. LOAD DATA LOCAL...

    MySQL管理之道 性能调优、高可用与监控.part2.rar

    《mysql管理之道:性能调优、高可用与监控》由资深mysql专家撰写,以最新的mysql版本为基础,以构建高性能mysql服务器为核心,从故障诊断、表设计、sql优化、性能参数调优、mydumper逻辑、xtrabackup热备份与恢复、...

    70道MySQL面试题大全

    MySQL作为一款免费开源的关系型数据库管理系统,在业界使用广泛,涵盖了众多的数据管理功能和特性,从基础的数据类型,到高端的事务处理、数据备份、分区等功能都有很好的支持。了解MySQL的基础知识和高级特性,对于...

    NOSQL数据库入门到实战 结合实践案例,以任务为驱动.zip

    1、所有数据库对象都要小写字母、并用下划线分割 2、所有数据库对象*不要用mysql关键字命名 3、库表的命名要达到看到...6、谨慎利用Mysql分区功能 在分区表中物理上面是多个文件,但逻辑上是一个文件,灵活度不够,而

    162100分类信息 v20150531

    V20150531版1、重要!修复导航站与信息站之间帐户登录通行时被侵后台的漏洞。...3、MySQL分区、索引操作,快捷运行、高效承载。5、强大的管理后台:无限级自由分类、风格模式转换、伪静态支持、文章审核

    大数据应用测试经验总结.pdf

    hive 基础操作 基础操作 说明 说明 查看数据 库 show databases 使⽤数据 库 use DbName 删除数据 库 drop database if exists DbName CASCADE 如果数据库不为空,删除会报错,加上cascade可忽略 查看表 show tables...

    大数据的基础知识.pdf

    8 Hive Hive是基于Hadoop的⼀个数据仓库⼯具,可以将结构化的数据⽂件映射为⼀张数据库表,并提供简单的SQL查询功能,可以将SQL语 句转换为MapReduce任务进⾏运⾏。 其优点是学习成本低,可以通过类SQL语句快速实现...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    ORACLE用户是学习ORACLE数据库中的基础知识,下面就介绍下类系统常用的默认ORACLE用户: 1. sys用户:超级用户,完全是个SYSDBA(管理数据库的人)。拥有dba,sysdba,sysoper等角色或权限。是oracle权限最高的用户,...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例239 可以屏蔽刷新功能的文本计数器 310 实例240 判断文件是否被修改 312 实例241 重新定义上传文件的名称 313 实例242 读取远程文件中的数据 314 实例243 删除指定目录下的所有.ini文件 315 实例244 将文本文件...

Global site tag (gtag.js) - Google Analytics