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 ( '' )
);

最新文章

  1. linux文件目录详解
  2. JS表单验证插件(支持Ajax验证)
  3. 如何让IE8的菜单栏调到最上方
  4. python练习程序(c100经典例16)
  5. PHP 怎么随机获取数组里面的值
  6. cocos2d-x游戏开发系列教程-坦克大战游戏之坦克和地图碰撞的检测下
  7. C#索引器的应用:自已写一个表格
  8. Apriori算法Python实现
  9. Leetcode题解(二)
  10. Nginx集群之SSL证书的WebApi身份验证
  11. 多个PVSS数据点属性读写的优化处理
  12. Shell命令-文件及内容处理之grep(egrep)、join
  13. [LeetCode] 139. Word Break_ Medium tag: Dynamic Programming
  14. 【ASP.NET MVC系列】浅谈ASP.NET MVC运行过程
  15. Burp Scanner Report
  16. Docker安装管理界面portainer
  17. USACO 2012 December ZQUOJ 24128 Wifi Setup(动态dp)
  18. 【转】工作中使用Trepn Power Profiler的应用总结
  19. 解决 /dev/mapper/* 100%
  20. HTTP cookies 详解(国外一位大牛的文章)

热门文章

  1. helloctf.exe ----攻防世界
  2. Element 以二进制的形式 自定义上传图片
  3. redis 模糊查询与删除
  4. java虚拟机05(Java虚拟机的参数)
  5. JDK8中的HashMap实现原理及源码分析
  6. python-处理json、处理时间
  7. Ubuntu18.04可执行文件运行提示No such file or directory
  8. Node.js 加载静态资源css,js等不显示问题的解决方法
  9. java中vector、ArrayList、LinkedList的区别
  10. 030-PHP日期查询函数