先說那三個:drop、truncate、delete日誌
一、drop 刪除全部表結構和數據索引
drop table tableName;資源
二、truncate 刪除表全部數據,不刪除表結構,不能添加where,不能刪除行數據,整張表數據清空table
truncate table tableNameim
三、delete 刪除表數據,能夠添加where,與truncate不一樣的是它須要一行一行的刪除數據,沒刪除一項就被記錄,能夠回滾,roll back,truncate比delete使用系統和事物日誌資源少,但不能回滾,但比delete快總結
delete from tableName where ...數據
總結:img
一、truncate 在各類表上不管是大的仍是小的都很是快。若是有ROLLBACK命令Delete將被撤銷,而 truncate 則不會被撤銷。
二、truncate 是一個DDL語言,向其餘全部的DDL語言同樣,他將被隱式提交,不能對 truncate 使用ROLLBACK命令。
三、truncate 將從新設置高水平線和全部的索引。在對整個表和索引進行徹底瀏覽時,通過 truncate 操做後的表比Delete操做後的表要快得多。
四、truncate 不能觸發任何Delete觸發器。
五、當表被清空後表和表的索引講從新設置成初始大小,而delete則不能。
六、不能清空父表tab