MySQL 删除大表中的大部分数据的方式
Contents
昨晚要删除一张原有 2 亿多条日志表的数据,只保留 今年 2017 及之后的数据,删除之前的,以释放磁盘空间,发现 delete from t where id < 2亿; 发现这样子删除实在是太慢了,而且效率性能低下
创建一个中间表
create table t_copy like 原表名;
不删除的数据复制到中间表
insert into t_copy select * from 原表名 where ...
重命名表
rename table 原表名 to t_old, t_copy to 原表名;
删除整张表
drop table t_old