如果有一張表有上千萬條數據,需要清空這個表的數據,你會怎么解決?
如果用delete,會卡上半天時間,不可行。需要用truncate table去解決,如下:
1、先創建一個備份表
create table 備份表 as
select * from 千萬條數據的表
2、清空數據
truncate table 千萬條數據的表
3、如果需要保留部分數據
insert into 千萬條數據的表 select * from 備份表 where ......
4、刪除臨時表
drop table 備份表
完成。
TRUNCATE TABLE 是一次性地從表中刪除所有的數據並不把單獨的刪除操作記錄記入日志保存,刪除行是不能恢復的。並且在刪除的過程中不會激活與表有關的刪除觸發器。執行速度快。