十、清空表时优先使用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日志并进行多维度分析。
目录
相关文章
|
7月前
|
SQL 索引
如何删除表中的重复记录只保留其中一条?
如何删除表中的重复记录只保留其中一条?
224 0
|
7月前
|
存储 关系型数据库 MySQL
Mysql数据库清空表 truncate和delete
Mysql数据库清空表 truncate和delete
147 0
UPSERT操作只能对已经存在的分区进行更新或插入操作
UPSERT操作只能对已经存在的分区进行更新或插入操作
64 2
|
存储 索引
清空表时优先使用truncate
清空表时优先使用truncate
|
SQL 数据库
DML 添加、修改、删除数据
DML英文全称是Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增、删、改操作。
228 0
|
SQL 安全 数据库
如何向表中插入数据以及如何更新、删除表中的数据
1. 插入 INSERT 用来将行插入到数据库表中。插入有几种方式: 插入完整的行。 插入行的一部分。 插入某些查询的结果。 INSERT 语法要求指定表名和插入到新表中的值。例如,我们将一个新顾客插入到 customers 表中。 插入前: INSERT INTO Customers VALUES('1000000006', 'Toy Land', '123 Any Street', 'New York', 'NY', '11111', 'USA', 'Jordan', 'Jordan@gmail.com'); 运行结果如下: 插入到新表中的值由 VALUES 子
160 0
|
SQL Oracle 关系型数据库
truncate表后恢复方法总结
truncate表后恢复方法总结   1.1  BLOG文档结构图   1.2  前言部分   1.
1722 0
插入、更新、删除表中的数据
插入、更新、删除表中的数据 笔记 (文中的姓名、电话等为随机编写的,如有冒犯,请多多包涵) >需求1 向科目表中添加数据,如表1 科目编号 科目名 课时数 年级编号 1 Logic Java 220 1 2 HTML 160 1 3 Java OOP 230 2 第一步,创建科目表subject,create table `subject`(.
1583 0
下一篇
DataWorks