MySQL使用event进行自动分表

新单位需要分表处理一个大的日志表。
首先,开启event功能。
SET GLOBAL event_scheduler = 1;
然后根据时间自动创建新表,并将视图更改到新表的查询。

  1. --模拟日志表
  2. create table t1 (id int,log varchar(30));
  3. --模拟视图
  4. create view v_log as select * from t1;
  5. delimiter $$
  6. CREATE EVENT test_event
  7.     ON SCHEDULE 
  8.         EVERY 1 second
  9.     STARTS str_to_date('2014-04-14 20:10:00','%Y-%m-%d %T')
  10.     COMMENT '根据日期创建一个新的日志表,并将视图修改为对新日志表的查询'
  11.     DO
  12.         BEGIN
  13.             set @cur_date=replace(curtime(),':','_');
  14.             set @sqltext=concat("create table log_", @cur_date ,"(id int);");
  15.             PREPARE c_tab_stat from @sqltext;
  16.             execute c_tab_stat;    
  17.             set @sqltext=concat("create or replace view v_log as select * from log_",@cur_date,";");
  18.             select @sqltext;
  19.             PREPARE a_view_stat from @sqltext;
  20.             execute a_view_stat;    
  21.         END $$
  22. delimiter ;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值