truncate table命令將快速刪除資料表中的所有記錄(保留資料表結構)。這種快速刪除與delete from 資料表的刪除全部資料表記錄不一樣,delete命令刪除的資料將儲存在系統回滾段中,需要的時候,資料可以回滾恢復,而truncate命令刪除的資料是不可以恢復的。咱們做乙個測試:
1、建乙個帶有自增字段的表,加入100萬資料
2、分別用truncate和delete刪除全部資料(分別執行delete from `tablename`; truncate from `tablename`;drop from `tablename`;)
3、然後再向表裡插入一條資料
最直觀是:
1、truncate table是非常快的
2、truncate之後的自增欄位從頭開始計數了,而delete的仍保留原來的最大數值
相同點:
truncate和不帶where子句的delete, 以及drop都會刪除表內的資料。
不同點:
1、truncate和delete只刪除資料不刪除表的結構,而drop語句不僅刪除全部資料還刪除了表的結構;
2、delete操作會放到rollback segement中,事務提交之後才生效也就是可以回滾。而truncate,drop操作之後原資料不放到rollback segment中,不能回滾
3、delete語句不影響表所占用的extent, 高水線(high watermark)保持原位置不動,也就是自增id不變化
4、速度,一般來說: drop>; truncate >; delete
資料庫中truncate與delete的區別
而delete和truncate table都是刪除表中的資料的語句,它們的不同之處在於 1 truncate table比delete的速度快 2 truncate table 是刪除表的所有行,而delete是刪除表的一行或者多行 除非delete不帶where語句 3 在刪除時如果遇到任何一行...
資料庫中 與 區別
mybatis 4 原sql語句 sql view plain copy deletefromups role permission dataparams whererole id 在這裡用到了 使用 時 1 用來傳入引數,sql在解析的時候會加上 當成字串來解析 如這裡 role id rolei...
用命令建立MySQL資料庫 de1
一 連線mysql 格式 mysql h主機位址 u使用者名稱 p使用者密碼 1 連線到本機上的mysql。首先開啟dos視窗,然後進入目錄mysql bin,再鍵入命令mysql u root p,回車後提示你輸密碼.注意使用者 名前可以有空格也可以沒有空格,但是密碼前必須沒有空格,否則讓你重新輸...