Mysql清空表(truncate)与删除表中数据(delete)的区别
生活随笔
收集整理的這篇文章主要介紹了
Mysql清空表(truncate)与删除表中数据(delete)的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2019獨角獸企業重金招聘Python工程師標準>>>
?
為某基于wordpress搭建的博客長久未除草,某天升級的時候發現已經被插入了幾萬條垃圾留言,如果一條條刪除那可真是累人的活。遂考慮直接進入mysql直接清空表或者刪除表中數據。
本文記錄一下這2種操作模式的區別,目標對象是表wp_comments,里面的所有留言均是垃圾留言,均可刪除。然后便有了以下2種方式(進入mysql操作界面后):
其中truncate操作中的table可以省略,delete操作中的*可以省略。這兩者都是將wp_comments表中數據清空,不過也是有區別的,如下:
- truncate是整體刪除(速度較快), delete是逐條刪除(速度較慢)。
- truncate不寫服務器log,delete寫服務器log,也就是truncate效率比delete高的原因。
- truncate不激活trigger(觸發器),但是會重置Identity(標識列、自增字段),相當于自增列會被置為初始值,又重新從1開始記錄,而不是接著原來的ID數。而delete刪除以后,Identity依舊是接著被刪除的最近的那一條記錄ID加1后進行記錄。
- 如果只需刪除表中的部分記錄,只能使用DELETE語句配合where條件。 DELETE FROM?wp_comments?WHERE……
全文完。
轉載于:https://my.oschina.net/u/3369787/blog/1609207
總結
以上是生活随笔為你收集整理的Mysql清空表(truncate)与删除表中数据(delete)的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 将不确定变为确定~老赵写的CodeTim
- 下一篇: 探索java世界中的日志奥秘