MySQL 定時(shí)新增分區(qū)的實(shí)現(xiàn)示例
MySQL創(chuàng)建好分區(qū)之后,有時(shí)候會需要自動創(chuàng)建分區(qū)。比如,一些表數(shù)據(jù)量非常大,有些數(shù)據(jù)是熱點(diǎn)數(shù)據(jù),按照日期分區(qū)后,業(yè)務(wù)量還在走,就會需要過段時(shí)間再創(chuàng)建一次分區(qū)。身為程序員總是手動創(chuàng)建不能忍。
首先創(chuàng)建一個(gè)存儲過程,可以自動新增分區(qū)(如果需要自動刪除分區(qū),本文同樣適用)
DELIMITER $$
USE `me`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `add_schedule_log_partition`()
BEGIN
set @pname = concat('p',date_format(curdate(),'%Y%m%d'));
set @nexttodays = to_days(date_add(curdate(), INTERVAL 1 DAY));
set @executeStr = concat('alter table s_schedule_log add partition (PARTITION ', @pname, ' VALUES LESS THAN (', @nexttodays, ' ))');
prepare stmt from @executeStr;
execute stmt;
deallocate prepare stmt;
select @executeStr;
END$$
DELIMITER ;
;存儲過程可以手動call下,有沒有問題。然后寫個(gè)定時(shí)任務(wù)
DELIMITER ||
CREATE EVENT add_schedule_log_partition_event
ON SCHEDULE
EVERY 1 day STARTS '2022-05-15 01:00:00'
DO
BEGIN
call `me`.`add_schedule_log_partition`;
END ||
DELIMITER ;注意:定時(shí)任務(wù)需要參數(shù)event_scheduler開啟狀態(tài),使用sql:show variables like '%schedule%' 查看狀態(tài)。
開啟任務(wù)狀態(tài):set global event_scheduler = 'ON'
通過存儲過程和定時(shí)任務(wù)實(shí)現(xiàn)MySQL分區(qū)的自動創(chuàng)建,解決大數(shù)據(jù)量下手動維護(hù)的繁瑣問題,
相關(guān)文章
簡單了解MySQL union all與union的區(qū)別
這篇文章主要介紹了簡單了解MySQL union all與union的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
MySQL數(shù)據(jù)遷移使用MySQLdump命令
今天小編就為大家分享一篇關(guān)于MySQL數(shù)據(jù)遷移使用MySQLdump命令,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-10-10
Mysql5.7在windows7下my.ini文件加載路徑及數(shù)據(jù)位置修改方法
這篇文章主要介紹了Mysql5.7在windows7下my.ini文件加載路徑及數(shù)據(jù)位置修改方法,需要的朋友可以參考下2018-02-02
基于sqlalchemy對mysql實(shí)現(xiàn)增刪改查操作
這篇文章主要介紹了基于sqlalchemy對mysql實(shí)現(xiàn)增刪改查操作,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06

