truncate table语句的 用途就是清空表内容。不带where条件的delete语句也表示清空表的内容。
从执行结果来看两者都实现了相同的功能。但是两者实现的原理是不一样的。
truncate table是DDL语句,数据定义语句。truncate table的原理相当于用重新定义一个新表的方法把原先表的内容直接丢弃了,所以truncate table执行起来很快。
delete table是DML语句。原理可以认为是把数据一条一条从表空间中链表一条一条删除,要删除多少就要删除多少行数据,就会很慢。