详细说明MySQL中的删除、截断和删除的区别,以实现MySQL的零。
1。截断和删除只删除不删除表(定义)的数据结构。
下拉语句将删除依赖于约束(约束)、触发器(触发器)和索引(索引)的表的结构,这取决于表。
存储过程/函数将被保留,但将更改为无效状态。
这是2.delete DML声明,它将被放置在回滚段,不直到提交事务生效;如果有相应的触发,
执行时间将被触发。
截形,降是DDL操作立即生效,原始数据不放在回滚段,不能回滚。操作不触发
触发.
的3.delete声明不影响程度的桌子占,和高水位线保持原来的位置
很明显,下拉语句释放了表所占用的所有空间。
当TRUNCATE语句是默认,看到空间被释放minextents程度除非重用存储;截断
水管线将重置(回到起点)。
4。速度,一般来说:降>截断>删除
5。安全性:小心地使用下拉和截断,特别是在没有备份的情况下。否则,哭得太迟了。
在使用中,希望删除带删除的数据行的一部分,并注意WHERE子句。回滚部分足够大。
如果要删除表,当然要使用下拉
如果要保留表,删除所有数据。如果与事务无关,则使用截断符。如果它与事务相关,或者如果您想触发触发器,
这是删除。
如果是在表的片段,你可以使用truncate跟上重用存储,然后重新导入 / /插入数据
实际应用:
从表中删除;删除所有数据
TRUNCATETABLE; / /从0 auto_increatement调制,实际上是从1开始