truncate与delete

  • truncate

truncate是DDL语言,自动提交,不可回滚。truncate作用于table。如:

truncate table ww;

那么表ww的所有数据将会被删除。但是会保留表。

  • delete

delete是DML语言,不会自动提交,可以回滚。delete可以删除表中的全部数据,也可以删除表中的部分数据。

总结:truncate是DDL语言,删除全部表数据时速度快,占用资源少,不可以回滚。delete是DML语言,可删除表中的部分数据或全部数据,可以回滚,速度相对来说慢。truncate与delete都不会删除表中的结构,如表的主键和索引。

多表查询的问题

执行的时候是从右往左的。所以在多表的时候,把记录最少的表放在最右边,以提高执行效率。

多使用commit

尽量多使用commit,以释放资源,但是要注意事务的完整性。

(完)