MySQL 按月给表分区存储过程

本文详细介绍了如何在MySQL中创建按月份进行分区的存储过程,包括步骤、语法及其实现方法,帮助读者理解如何优化大数据量表的查询效率。
摘要由CSDN通过智能技术生成
drop procedure if exists p_add_part_month;

DELIMITER // 
create procedure p_add_part_month(tab_name varchar(50),dtime datetime)
begin
declare p1_name varchar(50) default concat('p_',date_format(dtime,'%Y%m'));

declare p1_time varchar(20) default concat(date_format(DATE_ADD(dtime,INTERVAL 1 MONTH),'%Y-%m'),'-01 00:00:00');
    
set @v_add=concat('ALTER TABLE ',tab_name,' reorganize partition part_other into
            (PARTITION ',p1_name,' VALUES LESS THAN (\'',p1_time,'\'),
             PARTITION part_other VALUES LESS THAN (MAXVALUE))');
prepare stm from @v_add;
execute stm;
deallocate prepare stm;
end;
//

DELIMITER ;



-- 设置开启(数据库默认是关闭的,这个需要在my.cnf中设置下,否则数据库重启后会自动关闭)
set global event_scheduler = 1;
-- 查看任务调度启动状态
show global VARIABLES like 'event_scheduler';

-- 查看当前事务
show full processlist;




-- 添加sjkk_gcjl表的分区维护任务
-- 删除任务调度
drop event
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值