ITPub博客

首页 > 数据库 > MySQL > MySQL使用event进行自动分表

MySQL使用event进行自动分表

原创 MySQL 作者:壹頁書 时间:2014-04-14 20:15:02 0 删除 编辑
新单位需要分表处理一个大的日志表。
首先,开启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 ;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29254281/viewspace-1141985/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2013-10-19

  • 博文量
    621
  • 访问量
    5992882