十、清空表时优先使用truncate

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 十、清空表时优先使用truncate

truncate table在功能上与不带 where子句的 delete语句相同:二者均删除表中的全部行。但 truncate table比 delete速度快,且使用的系统和事务日志资源少。


delete语句每次删除一行,并在事务日志中为所删除的每行记录一项。 truncate table通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。


truncate table删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 DELETE。如果要删除表定义及其数据,请使用 drop table语句。


对于由 foreign key约束引用的表,不能使用 truncate table,而应使用不带 where子句的 DELETE 语句。由于 truncate table不记录在日志中,所以它不能激活触发器。


truncate table不能用于参与了索引视图的表。


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
5月前
|
关系型数据库 数据库 PostgreSQL
pg下delete数据后。除了使用VACUUM FULL TABLE 才能释放磁盘空间外的方法。
【8月更文挑战第12天】pg下delete数据后。除了使用VACUUM FULL TABLE 才能释放磁盘空间外的方法。
301 1
|
8月前
|
存储 关系型数据库 MySQL
Mysql数据库清空表 truncate和delete
Mysql数据库清空表 truncate和delete
165 0
UPSERT操作只能对已经存在的分区进行更新或插入操作
UPSERT操作只能对已经存在的分区进行更新或插入操作
72 2
|
存储 索引
清空表时优先使用truncate
清空表时优先使用truncate
ORCALE清除全部表数据,保留表结构
ORCALE清除全部表数据,保留表结构
138 0
|
SQL Oracle 关系型数据库
truncate表后恢复方法总结
truncate表后恢复方法总结   1.1  BLOG文档结构图   1.2  前言部分   1.
1726 0