昨晚要删除一张原有 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