Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > MySQL删除指令deleted和truncate在使用中的异同

MySQL语句之删除指令deleted和truncate在使用中的异同详解

作者:Hello 阿月

这篇文章主要介绍了MySQL语句之删除指令deleted和truncate在使用中的异同,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

删除指令deleted和truncate在使用中的异同

在MySQL中,DELETETRUNCATE

是两种不同的数据操作命令,虽然都能起到删除数据的作用,但是功能和影响均有所不同。

理论

1.功能

2.事务性

3.性能

4.影响

5.总结

举个例子

假设有一个名为 employees 的表,其中包含员工的信息,包括 idnamesalary

现在需要删除这个表内的数据,并比较使用 DELETETRUNCATE 的效果。

1.使用 DELETE

-- 删除表中薪资低于 3000 的员工记录
DELETE FROM employees WHERE salary < 3000;

在这种情况下,DELETE 将删除所有薪资低于 3000 的员工记录。

如果表中有许多匹配的行,则 DELETE 将逐行删除这些行。

这可能需要一些时间,特别是如果表很大。

2. 使用 TRUNCATE

-- 清空整个表
TRUNCATE TABLE employees;

TRUNCATE 将清空整个表,即删除表中的所有行,但保留表的结构。

在执行 TRUNCATE 后,表中的自增长计数器将重置为初始值,而且不会触发触发器。

3. 对比

使用 DELETE 时,我们可以根据条件选择性地删除行,而 TRUNCATE 则是将整个表清空。

DELETE 是 DML 操作,可以在事务中使用,可以撤消,但可能比较慢。

TRUNCATE 是 DDL 操作,不可回滚,性能通常比 DELETE 更好。

因此,如果需要精确控制删除的行或者需要保留表的结构,可以使用 DELETE

如果只是需要快速清空整个表而不关心数据内容,可以考虑使用 TRUNCATE

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文