需求:
要清空表中数据,现有一个100w以上的表,开始使用delete from t_name进行删除,发现太慢了,足足等了8分钟,如果数据更大,则无法想象。
可用如下方法进行删除
假设要删除的源表为SOURCE_T
1、生成中间表
create table SOURCE_T_M as select * from SOURCE_T where id = '111' --随便指定一条符合条件的数据
2、修改表名
rename SOURCE_T to SOURCE_T_B; --将源表改为其他名字
rename SOURCE_T_M to SOURCE_T; --将中间表改名为源表
3、删除表
drop table SOURCE_T_B; --删除那个被你改为其他名字的表
delete from SOURCE_T; --此时表中只有一条数据,删除即可
作者:itmyhome