清理历史数据,大表删除非常的慢;想用truncate,但是又要保留近期数据.所以就想先把近期数据保存到其他表里,truncate之后再insert回来.
create table r_log_temp_month3 as select * from r_log where LOGDATE<DATE_SUB(CURDATE(), INTERVAL 3 MONTH);
truncate table r_log;
insert into r_log select * from r_log_temp_month3 ;
还是挺快的。
缺点就是操作期间不能写数据了,不然这期间写的数据可能丢失。