Mysql清空表(truncate)與刪除表中數據(delete)的區別


Mysql清空表(truncate)與刪除表中數據(delete)的區別


兩種清空表的方式

truncate table 表名;
delete from 表名;

其中truncate操作中的table可以省略。這兩者都是將wp_comments表中數據清空,不過也是有區別的,如下:

  • truncate是整體刪除(速度較快), delete是逐條刪除(速度較慢)。
  • truncate不寫服務器log,delete寫服務器log,也就是truncate效率比delete高的原因。
  • truncate不激活trigger(觸發器),但是會重置Identity(標識列、自增字段),相當於自增列會被置為初始值,又重新從1開始記錄,而不是接着原來的ID數。而delete刪除以后,Identity依舊是接着被刪除的最近的那一條記錄ID加1后進行記錄。
  • 如果只需刪除表中的部分記錄,只能使用DELETE語句配合where條件。 DELETE FROM 表名 WHERE……

參考:

http://blog.is36.com/mysql_difference_of_truncate_and_delete/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM