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

MySQL按时间拆分千万级大表

Mysql 悠扬 826次浏览 已收录 0个评论

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年以上工作经验,从事2年微服务架构搭建工作,有大数据处理相关工作经验,使用spring全家桶包括:Spring,SpringBoot,SpringCloud 数据层组件服务使用SpringDataJpa,Mybatis以及其他第三方组件Sharding-JDBC,Sharding-Proxy分库分表。熟悉微服务,服务降级,限流,分流,做过项目源码修改,有cat,apollo,nacos使用经验,有Lostash,Elasticsearch,kibana,mysqlMHA生产实践经验,使用开源代码Apache Sarding项目,修改源码支持mysql分库分表使用年月日小时分库分表,docker做集群服务,Jekins做项目发布,GitLab做项目管理,使用docker容器部署,熟悉消息队列RabbitMQ,Kafka,ActiveMQ。RuoYi-Vue-Atomikos项目开源加入生态圈组件,项目支持分布式事务,界面添加多数据源,数据源动态配置,切面切换,多数据源事务支持,支持区域数据源配置,用于区域数据切分,数据层次分库。项目地址:https://gitee.com/zsiyang/ruoyi-vue-atomikos
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址