delete drop truncate刪表的區別

2021-09-25 10:00:21 字數 520 閱讀 9051

delete

delete from 表名 //刪除整張表

delete from 表名 where 條件 //刪除表中符合條件的資料

truncate
truncate table 表名
drop
drop table 表名
區別

刪表和索引所佔空間:

當表被truncate 後,這個表和索引所占用的空間會恢復到初始大小;

delete操作不會減少表或索引所占用的空間;

drop語句將表所占用的空間全釋放掉

執行速度:drop > truncate > delete

如果有identity產生的自增id列,delete後仍然從上次的數開始增加,即種子不變;使用truncate刪除之後,種子會恢復到初始值。

delete from刪空表後,會保留乙個空的頁,truncate在表中不會留有任何頁。

執行速度: drop > truncate > delete

單向鍊錶的尾刪

鍊錶的尾刪依然分為空鍊錶和非空鍊錶,對於空鍊錶來說,鍊錶中沒有節點無法刪除,所以直接返回null,對於非空鍊錶,要實現鍊錶的尾刪就要找到倒數第二個節點,讓倒數第二個節點的next指向null,這樣就實現了刪除最後乙個節點,最後返回鍊錶的頭節點head.public class node public...

mysql 刪表引出的問題

將測試環境的表同步到另外乙個資料庫伺服器中,但有些表裡面資料巨大,其實不同步該錶的資料就行,當時沒想太多 幾千萬的資料!1.既然已經把資料同步過來的話,那就直接delete掉就行,多大的事呢?於是 delete from table name where1 1 結果傻眼了,執行了一會兒就卡死了,對卡...

MySQL 刪表或者刪庫沒有響應

看網上教程學習,匯入了別人的sql檔案,但是似乎中間出了點問題,所以想刪庫刪表重新來過。但是無論是無論是刪庫還是刪表都沒有響應。show full processlist 發現很多wating for table metadata lock狀態的程序。kill process id 殺死這些程序後,...