TRUNCATE 语句从技术上讲是否会在后台删除并重新创建表?

问题描述 投票:0回答:1

我一直在 SQL 中使用 TRUNCATE 语句来删除表中的所有行。不过,我对它的内部机制很好奇。 TRUNCATE 是否在技术上删除并在后台重新创建表,或者它是在保留表结构的同时删除数据的更有效方法?

有人可以解释 TRUNCATE 在幕后如何工作的技术细节吗?任何对相关文档的见解或参考将不胜感激。 谢谢!

sql mysql database rdbms truncate
1个回答
0
投票

答案:

TRUNCATE TABLE 语句从技术上讲不会删除并在后台重新创建表。相反,它有效地从表中删除所有行,同时保持表结构完整。它通过解除分配数据页来实现这一点,与使用 DELETE 相比,使其成为大型表的更快选择。

源链接在这里-(dev.mysql.com)

文件摘要:

有关 TRUNCATE TABLE 语句的 MySQL 文档解释说,TRUNCATE 是一种 DDL(数据定义语言)语句,用于有效地从表中删除所有行,同时保留表结构。与逐一删除行的 DELETE 不同,TRUNCATE 针对大型表进行了优化,并且速度更快,因为它释放表使用的数据页并将存储释放回系统。

© www.soinside.com 2019 - 2024. All rights reserved.