☰
数据库truncate
2026/9/28 20:27:02 网站建设 项目流程
数据库truncate实际工作方式
MySQLMySQL5.7版本,直接释放表数据所占空间(对应.ibd文件的空间),但保留表结构(.frm)和索引结构
Oracle创建一张空表,将表的访问地址改为新创建空表的地址,原表还在,标记原表所在空间为“可重用”,物理数据仍存在但逻辑上不可见。可以调整高水位线(HWM)。truncate操作不会释放原表数据所占的磁盘空间。
openguass猜测是和MySQL类似,释放表数据所占空间
神通数据库测试下来和Oracle一致

验证:

MySQL

提前在如下表中插入1000条数据

1000条数据下,表占用空间如下

执行truncate表操作之后,表占用空间如下

结论:可以看到,只有.idb文件变小了。直接释放表数据所占空间(对应.ibd文件的空间),但保留表结构(.frm)和索引结构

opengauss

提前在如下表中插入100万条数据


100万条数据下,整个opengauss的data目录占用1.1G

执行truncate表操作之后,整个opengauss的data目录占用1017G

结论:猜测是和MySQL类似,释放表数据所占空间

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询