1、创建测试表

CREATE TABLE `t_test` (
`id` INT (11),
`dates` DATETIME
);
ALTER TABLE t_test ADD PRIMARY KEY (id);
ALTER TABLE t_test MODIFY id INT AUTO_INCREMENT;

2、创建一个生成测试数据的存储过程

我这里是生成n条2018年的数据(这个生成的时间有bug、我这里不管了,只是用来测试)

DELIMITER //
CREATE PROCEDURE `add_vote_memory`(n INT)
BEGIN
DECLARE i INT DEFAULT 1;
DECLARE datess VARCHAR(256);
WHILE (i <= n ) DO
-- 随机时间 这里生成的都是2018年的
SELECT CONCAT(2018,'-',LPAD(FLOOR(1 + (RAND() * 12)),2,0),'-',LPAD(FLOOR(1 + (RAND() * 28)),2,0)) INTO datess;
INSERT INTO t_test(dates ) VALUES (datess);
SET i=i+1;
END WHILE;
END //

3、生成测试数据

-- 调用存储过程 生成500000条
CALL add_vote_memory(500000);

4、创建分区表

CREATE TABLE t_range_test (
id INT,
dates DATETIME
)PARTITION BY RANGE COLUMNS ( dates ) (
-- 第一组小于2018-01-01的
PARTITION p1 VALUES LESS THAN ( '' ),
PARTITION p2 VALUES LESS THAN ( '' ),
PARTITION p3 VALUES LESS THAN ( '' ),
PARTITION p4 VALUES LESS THAN ( '' ),
PARTITION p5 VALUES LESS THAN ( '' ),
PARTITION p6 VALUES LESS THAN ( '' ),
PARTITION p7 VALUES LESS THAN ( '' ),
PARTITION p8 VALUES LESS THAN ( '' ),
PARTITION p9 VALUES LESS THAN ( '' ),
PARTITION p10 VALUES LESS THAN ( '' ),
PARTITION p11 VALUES LESS THAN ( '' ),
PARTITION p12 VALUES LESS THAN ( '' ),
-- 最后一组小于2019-01-01大于2018-12-01的
PARTITION p13 VALUES LESS THAN ( '' )
);

5、把上面测试表的数据插入到分区表中

INSERT INTO t_range_test SELECT * FROM t_test;

6、查看执行计划、结果看PARTITIONS列

EXPLAIN PARTITIONS SELECT * FROM t_range_test WHERE dates >= '' AND dates<='';

  结果:

7、查看表分区状况

-- 查询这个表有多少分区
-- 查询每一个分区对应的数量
SELECT t.`PARTITION_NAME`,t.`SUBPARTITION_NAME`,t.`TABLE_ROWS` FROM information_schema.`PARTITIONS` t WHERE t.`TABLE_NAME` = 't_range_test';

8、重新定义表分区

-- 给表重新定义分区
ALTER TABLE t_range_test PARTITION BY RANGE COLUMNS ( dates ) (
-- 第一组小于2018-01-01的
PARTITION p1 VALUES LESS THAN ( '' ),
PARTITION p2 VALUES LESS THAN ( '' ),
PARTITION p3 VALUES LESS THAN ( '' ),
PARTITION p4 VALUES LESS THAN ( '' ),
PARTITION p5 VALUES LESS THAN ( '' ),
PARTITION p6 VALUES LESS THAN ( '' ),
PARTITION p7 VALUES LESS THAN ( '' ),
PARTITION p8 VALUES LESS THAN ( '' ),
PARTITION p9 VALUES LESS THAN ( '' ),
PARTITION p10 VALUES LESS THAN ( '' ),
PARTITION p11 VALUES LESS THAN ( '' ),
PARTITION p12 VALUES LESS THAN ( '' ),
PARTITION p13 VALUES LESS THAN ( '' ),
-- 最后一组小于2020-01-01大于2019-01-01的
PARTITION p14 VALUES LESS THAN ( '' )
);

Mysql时间范围分区(RANGE COLUMNS方式)的更多相关文章

  1. Mysql表分区几种方式

    自5.1开始对分区(Partition)有支持,一张表最多1024个分区 查询分区数据: SELECT * from table PARTITION(p0) = 水平分区(根据列属性按行分)= 举个简 ...

  2. 细聊MySQL的分区功能

    此篇主要介绍下MySQL的分区功能.我们分别从分区的概念.分区对于MySQL应用的优点.分区的类别及设置来和大家一起探讨下MySQL的分区. 什么是分区? MySQL在未启用分区功能时,数据库的单个表 ...

  3. MySQL表分区技术

    MySQL表分区技术 MySQL有4种分区类型: 1.RANGE 分区 - 连续区间的分区 - 基于属于一个给定连续区间的列值,把多行分配给分区: 2.LIST 分区 - 离散区间的分区 - 类似于按 ...

  4. MYSQL的分区字段,必须包含在主键字段内

    MYSQL的分区字段,必须包含在主键字段内   MYSQL的分区字段,必须包含在主键字段内 在对表进行分区时,如果分区字段没有包含在主键字段内,如表A的主键为ID,分区字段为createtime ,按 ...

  5. MySQL partition分区I

    http://blog.csdn.net/binger819623/article/details/5280267 一.        分区的概念二.        为什么使用分区?(优点)三.    ...

  6. MySQL 表分区A

    在MySQL中表的分区类型总的来说有四种: 第一种:range分区.基于一个给定的区间范围,把数据分配到不同的分区. 第二种:list   分区.基本枚举的值列表进行分区. 第三种:hast 分区.基 ...

  7. mysql 表分区技术

    表分区,是指根据一定规则,将数据库中的一张表分解成多个更小的,容易管理的部分.从逻辑上看,只有一张表,但是底层却是由多个物理分区组成. 表分区有什么好处: a.分区表的数据可以分布在不同的物理设备上, ...

  8. mysql表分区实战

    一,什么是数据库分区以mysql为例,mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下面 (可以通过my.cnf中的datadir来查看),一张表主要对应着三个文件 ...

  9. mysql数据库分区功能及实例详解

    分区听起来怎么感觉是硬盘呀,对没错除了硬盘可以分区数据库现在也支持分区了,分区可以解决大数据量的处理问题,下面一起来看一个mysql数据库分区功能及实例详解   一,什么是数据库分区 前段时间写过一篇 ...

随机推荐

  1. webpack 4 x使用详细

    1.首先安装node.js 2.打开控制台cmd,输入npm install webpack webpack-cli webpack-dev-server -g 3.在本地磁盘上建一个文件夹,然后通过 ...

  2. 阿里云https+nginx服务搭建

    购买证书 通过控制台进入CA证书服务,点击右上角的购买证书,进入如下图的界面,选择免费的Symantec的DV SSL. 一路点过去,然后回到证书服务主页,会出现一条订单信息,点击补全,如下图所示. ...

  3. 格雷码(Grey Code)生成规则

    (1) Grey码在FPGA实际应用中是实用的码,在8421BCD码累加计数器中,如果寄存器需要发生多位(两位或者以上)的跳变,会出现中间态,这样作为组合逻辑的输入是不稳妥的. 下面看两个中间态的例子 ...

  4. ORACLE SQL DEVELOPER配置

    1.首先,sql developer是用java开发的 所以闲进行java配置. 如果首次打开提醒需要配置java环境 那就选择对应的目录即可. 如果不提示 那就忽略以上内容. 首次打开 会提示 是否 ...

  5. Shell脚本之awk篇

    目录:一.概述二.awk基本语法格式三.awk基本操作四.awk条件及循环语句五.awk函数六.awk演示示例(源自于man手册) 一.概述 1. 产品概述: awk是一种编程语言,用于在linux/ ...

  6. 51nod 1065:最小正子段和

    1065 最小正子段和 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题  收藏  取消关注 N个整数组成的序列a[1],a[2],a[3],-,a[n],从中选出一 ...

  7. WTL之VS2013环境搭建

    新版博客已经搭建好了,有问题请访问 htt://www.crazydebug.com 从国外回来,在老家入职了新公司,做c++开发,刚到新公司要熟悉公司的项目代码,目前公司在做一个主播聚合平台,界面采 ...

  8. jenkins打包iOS 报错:error: exportArchive: The data couldn’t be read because it isn’t in the correct format.

    在执行ios 打包的时候,我们通过执行下面的指令来打包ipa: mkdir arch archive_path=arch/${app_name}.xcarchive workspace_name=HP ...

  9. Redis 详解 (一) redis的简介和安装

    目录 1.Redis 的简介 2.Redis 下载 3.安装环境 4.编译安装 5.启动Redis 6.关闭Redis 7.注意事项 工作中一直在用 Redis,但是一直没有进行系统的总结,这个系列的 ...

  10. 框架基础学习之--详解web+maven+spring+mybatis+struts框架文件夹作用

    详解web+maven+spring+mybatis+struts框架文件夹作用 1.程序名 2.Mybatis,mybatis是数据持久层,就是和对象类有关系的东西 3.存放java文件,xml,p ...