日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL中清空表和截断表的区别(新手入门)

發布時間:2025/3/12 数据库 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL中清空表和截断表的区别(新手入门) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

清空表和截斷表

清空表:delete from users;

清空表只是清空表中的邏輯數據,但是物理數據不清除,如主鍵值、索引等不被清除,還是原來的值。

截斷表:truncate table users;

截斷表可以用于刪除表中 的所有數據。截斷表命令還會回收所有索引的分配頁。截斷表的執行速度與不帶where子句的delete(刪除)命令相同,甚至比它還要快。 delete(刪除)一次刪除一行數據,并且將每一行被刪除的數據都作為一個事務記錄日志;而truncate (截斷)表則回收整個數據頁,只記錄很少的日志項。delete(刪除)和truncate(截斷)都會回收被數據占用的空間,以及相關的索引。只有表的 擁有者可以截斷表。

另外,truncate表之后,如果有自動主鍵的話,會恢復成默認值。

主要區別如下:

truncate是整體刪除(速度較快), delete是逐條刪除(速度較慢)。

truncate不寫服務器log,delete寫服務器log,也就是truncate效率比delete高的原因。

truncate不激活trigger(觸發器),但是會重置Identity(標識列、自增字段),相當于自增列會被置為初始值,又重新從1開始記錄,而不是接著原來的ID數。

而delete刪除以后,Identity依舊是接著被刪除的最近的那一條記錄ID加1后進行記錄。

總結

以上是生活随笔為你收集整理的MySQL中清空表和截断表的区别(新手入门)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。