第一步: 创建分区的 表
引用
DROP TABLE IF EXISTS `t_jy0`;
CREATE TABLE `t_jy0` (
`id` bigint(50) NOT NULL AUTO_INCREMENT,
`creatortime` datetime(6) NOT NULL COMMENT '速度设定',
`P2101002001` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '挤压数量',
`P2101002002` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '主缸位移',
`P2101002003` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '主缸压力',
`P2101002004` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '成品长度',
`P2101002005` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '运行信号',
`P2101002006` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL,
PRIMARY KEY (`f_sn`, `f_creatortime`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 367470 CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = Dynamic
PARTITION BY RANGE COLUMNS(f_creatortime) (PARTITION d_plc620201101 VALUES LESS THAN ('2019-12-01 08:00:00'))
第二步:定时事件添加分区过程
引用
CREATE DEFINER=`root`@`%` PROCEDURE `createPartition`(tableName varchar(50))
begin
-- 计算下下个月1日的日期表达式(每个月1日做下下个月的分区)
set @pName = concat(year(adddate(now(),interval 2 month)),'-',right(concat('0',month(adddate(now(),interval 2 month))),2),'-01 01:00:00');
set @pMonth = concat(year(adddate(now(),interval 2 month)),right(concat('0',month(adddate(now(),interval 2 month))),2));
set @sqlStr = concat("alter table ",tableName," add partition ( partition ",tableName,"_",@pMonth," values less than('",@pName,"'));");
PREPARE create_stmt from @sqlStr;
EXECUTE create_stmt;
-- select @sqlStr;
end
----------------------------------------------
优化清理
引用
show table status like 'table_name';
查询结果中:
Index_length 代表索引的数量
Data_free 代表碎片数量
然后执行下面命令进行优化整理:
引用
mysql > optimize table table_name
-------------------------------------------------
查看数据库连接:
引用
show processlist;
------------------------------------------------
分享到:
相关推荐
表分区的测试使用,主要内容来自于其他博客文章以及mysql5.1的参考手册mysql测试版本:mysql5.5.28mysql物理存储文件(有mysql配置的datadir决定存储路径)格式简介数据库engine为MYISAMfrm表结构文件,myd表数据...
mysql表分区策略,包含range分区、list分区、hash分区等方法介绍及详解
用存储过程实现了MySQL数据库分区表的自动创建和自动删除功能。亲测有效。希望有用。
mysql数据库表分区教程,详细说明mysql表分区的每一个步骤
实现mysql 每天定时自动给数据库表追加分区,包含存储计划和存储过程
MYSQL分区表测试过程详细说明。MYSQL分区表测试过程详细说明。
php for mysql的表分区类,为mysql的大数据查询提供分区支持. 该类包含追加 创建 删除分区方法.可以通过索引 分类等字段为条件对数据库物理文件分离. 数据表的查询不受任何影响
MySQL数据库分区技术,解决多并发问题,详细描述分区流程及操作步骤
实现mysql按时间分区方式自动创建与删除分区,包括创建/删除日志记录,通过存储过程与事件联合实现,自动创建数量与删除数量可动态配置
MySQL 清除表空间碎片的实例详解 碎片产生的原因 (1)表的存储会出现碎片化,每当删除了一行内容,该段空间就会变为空白、被留空,而在一段时间内的大量删除操作,会使这种留空的空间变得比存储列表内容所使用的...
互联网公司为啥不使用mysql分区表
MySQL分区分表方案实践手册
本篇文章给大家带来的内容是关于MySQL中分区表的介绍及使用场景,有需要的朋友可以参考一下,希望对你有所帮助。 1.分区的目的及分区类型 MySQL在创建表的时候可以通过使用PARTITION BY子句定义每个分区存放的数据。...
mysql5.1开始支持数据表分区了。如:某用户表的记录超过了600万条,那么就可以根据入库日期将表分区,也可以根据所在地将表分区。当然也可根据其他的条件分区。二、为什么要对表进行分区为了改善大型表以及具有各种...
MySQL bin-log 日志清理方式 MySQL bin-log 日志清理方式
MySQL中创建数据表Range分区.pdf
测试结果 博文链接:https://hawthorstein.iteye.com/blog/888755
最近需要把一个oralce数据库向mysql数据库移植。oracle库用到了job和存储过程,因为mysql中没有job,所有要用新功能event代替一下,这个是5.1以后才有的新功能,所以稍微研究了一下。