mysql中SQL中DROP和TRUNCATE之间的区别
嘻嘻发布于2020-08-23
最后更新于2020年8月15日
浏览DROP和TRUNCATE是Mysql中删除数据常用的两种操作,那这两种操作有什么区别,哪种删除效率最高呢,分别对应哪些应用场景。
-
DROP:
DROP是DDL(数据定义语言)命令,用于删除表定义以及该表的索引,数据,约束,触发器等。在性能方面,DROP命令执行速度快,但比TRUNCATE慢,因为它会增加复杂性。与DELETE不同,我们无法在使用DROP命令后回滚数据。在DROP命令中,表空间从内存中释放出来,因为它会永久删除表及其所有内容。
DROP命令的语法–DROP TABLE table_name;
-
TRUNCATE:
TRUNCATE是DDL(数据定义语言)命令。它用于删除表中的所有元组。像DROP命令一样,TRUNCATE命令也不包含WHERE子句。TRUNCATE命令比DROP和DELETE命令都快。像DROP命令一样,在使用this命令之后,我们也无法回滚数据。
TRUNCATE命令的语法–TRUNCATE TABLE table_name;
DROP和TRUNCATE命令之间的区别:
序号 | Drop | TRUNCATE |
---|---|---|
1。 | DROP命令用于删除表定义及其内容。 | 而TRUNCATE命令用于删除表中的所有行。 |
2。 | 在DROP命令中,表空间从内存中释放出来。 | 虽然TRUNCATE清楚数据但不会从内存中释放表空间。 |
3。 | DROP是DDL(数据定义语言)命令。 | 而TRUNCATE也是DDL(数据定义语言)命令。 |
4。 | 在DROP命令中,表视图不存在。 | 在此命令中,存在表视图。 |
5, | 在DROP命令中,将删除完整性约束。 | 在此命令中,不会删除完整性约束。 |
6。 | 在DROP命令中,不使用撤消空间。 | 在此命令中,将使用撤消空间,但小于DELETE。 |
7 | DROP命令执行速度很快,但会带来复杂性。 | 虽然此命令比DROP快。 |