[sql]truncate与delete的区别
1 当表被truncate后,此表的索引或表所占用的空间会被释放;
2 当表被delete后,此表的索引或表所占的空间不会被释放!
因此可能会导致下面的情况发生:select * from A 非常慢(A中只有100条数据)
表A不断被delete数据,然后又insert数据,重复很多次。假设现在表A中有100条数据,小明在select * from A的时候,可能这条语句会跑很久。这就是由于delete表后,数据虽然没有了但是表原先所占的空间还存在。而后又insert数据,导致每一次delete、insert后,表A所占的空间非常大(虽然我们知道表A最终只有100条数据)。在select时就会很慢。