USE `testdb`$$
CREATE EVENT IF NOT EXISTS `create_partition`
ON SCHEDULE
EVERY 1 hour
DO BEGIN
set @starttime=now();
set @[email protected] - interval date_format(@starttime,'%s') second - interval date_format(@starttime,'%i') minute + interval 2 hour;
set @pname=concat('P',date_format(@starttime+ interval 1 hour,'%Y%m%d%H'));
SET @SQL = CONCAT( 'ALTER TABLE testdb.t2 ADD PARTITION (PARTITION ', @PNAME, ' VALUES LESS THAN (UNIX_TIMESTAMP(\'', @ENDTIME, '\')));' );
PREPARE STMT FROM @SQL;
EXECUTE STMT;
DEALLOCATE PREPARE STMT;
END$$
DELIMITER ;
参考博文:http://www.zabbix.org/wiki/Docs/howto/mysql_partitioning
原文:http://blog.51cto.com/linux10000/2128875
本文介绍了一个MySQL脚本,用于每小时自动创建一个新的分区。通过设置事件调度器,该脚本可以定期执行,确保表的高效管理和维护。适用于需要频繁进行数据分区的场景。
1万+

被折叠的 条评论
为什么被折叠?



