登录
  • 欢迎访问悠扬的技术博客,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站😉

MySQL按时间拆分千万级大表

Mysql 悠扬 1318次浏览 已收录

1.创建存储过程

#-----创建存储过程
CREATE PROCEDURE ctrlcctrlv_table(var VARCHAR(20))
BEGIN
SET @param1 = concat('ALTER TABLE ', var, ' RENAME ', var, DATE_FORMAT(NOW(), '%Y_%m_%d'));
PREPARE stmt FROM @param1;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET @param2 = concat('CREATE table ', var, ' like ', var, DATE_FORMAT(NOW(), '%Y_%m_%d'));
PREPARE stmt1 FROM @param2;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;
END;

2.创建EVEN事件

#---创建even事件
create event ctrlcctrlv_event
on schedule every 1 DAY STARTS '2021-01-21 00:00:00'
on completion preserve disable 
do call ctrlcctrlv_table("表名称"); 写自己的表名

3.启用EVEN

#---启用事件
alter event ctrlcctrlv_event on completion preserve enable; 
#---查询事件
SELECT * FROM information_schema.EVENTS;
#---删除event
DROP EVENT IF EXISTS event_1;
DROP EVENT IF EXISTS event_2;
DROP EVENT IF EXISTS event_insert_SECOND;

4.测试存储过程

#--测试存储过程执行情况
call ctrlcctrlv_table("zong_biao"); 

来点干货在mysql里面测试一下

创建一张测试表

CREATE TABLE `test_cut_demo` (
  `id` int NOT NULL AUTO_INCREMENT,
  `username` varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `password` varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `create_time` varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `day` datetime DEFAULT NULL COMMENT '日期',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2997 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

添加一个循环插入的EVENT

#--创建循环测试插入数据
delimiter $$
create event event_insert_SECOND 
on schedule every 2 SECOND  STARTS   CURRENT_TIMESTAMP + INTERVAL 1 MINUTE
COMMENT 'xiaowu create'
do 
    BEGIN
           insert into new_cut.test_cut_demo(username,password,create_time,day) values("李四","tomcat",now(),curdate());
    END $$
delimiter ;
#----红色库名,蓝色表明

添加事件启动

alter event event_insert_SECOND on completion preserve enable; 

查看数据库表中是否开始循环插入数据

MySQL按时间拆分千万级大表

调用存储过程测试是否可以进行表切割

#--测试存储过程执行情况
call ctrlcctrlv_table("test_cut_demo"); 

版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明MySQL按时间拆分千万级大表
喜欢 (0)
支付宝[]
分享 (0)
悠扬
关于作者:
10年以上工作经验:6年以上微服务架构设计搭建经验。 曾任岗位:项目经理、架构师。 擅长领域:大数据、数据库,架构设计,资源优化。 获得业绩: 1.实用新型发明专利1个,修改Apache Sharding源码设计实现分库分表程序增强方案。 2.开源项目一个:https://gitee.com/zsiyang/ruoyi-vue-atomikos (加入开源生态圈)。 3.个人技术博客地址:https://www.nxhz1688.com