MYSQL truncate table

准备:

要说truncate table 就要先说一下delete 它们两个都可以用来从表中删除数据行!表面上看是delete 删除的慢一些,truncate table

快一些、

delete :

它是老老实实的一行一行的删除数据、写日志、它删除的数据是可以通过日志恢复的。

trunate table :

它就不这样做了,它只要把数据页标记为空页面(里面没有数据行),这样记录的日志也要小不少。

然、

它也不是‘银弹’被它删除的数据是不太可能通过日志恢复的、因为它只记下了自己标志了哪几个页。

而这点信息不足以支持对表的数据行进行恢复。目前只可以通过数据库恢复的方式来恢复以前的数据了。

时间: 2024-08-24 20:23:55

MYSQL truncate table的相关文章

mysql truncate table命令使用总结

truncate使用注意 由于上过truncate table a_table命令一次当,将教训记录下来,以示警戒! mysql truncate table a_table命令受影响结果说明,亲身体验 命令 truncate table a_table; 会将执行表中的数据删除,有增长ID值的话会清空,但索引和表字段不会改变.切记增长ID值的改变!使用时需要注意! truncate性能 truncate table(innodb引擎) 数量1700w(17708030),只需要27s,平均每秒

MySQL DELETE语句和TRUNCATE TABLE语句的区别

MySQL DELETE语句和TRUNCATE TABLE语句的区别 2010-10-08 16:05 佚名 互联网 字号:T | T 在MySQL数据库中,DELETE语句和TRUNCATE TABLE语句都可以用来删除数据,但是这两种语句还是有着其区别的,下文就为您介绍这二者的差别所在. AD:干货来了,不要等!WOT2015 北京站演讲PPT开放下载! MySQL DELETE语句和TRUNCATE TABLE语句功能相似,但是二者究竟有何区别呢?下文就将为您分析MySQL DELETE语

php中MYSQL TRUNCATE的使用

MySQL TRUNCATE TABLE in PHP <?php $host="localhost"; $username="user"; $password="mysql_password"; $database="database_name"; $table="table_name"; $connection = mysql_connect("$host", "$u

MySql清空表的方法介绍 : truncate table 表名

清空某个mysql表中所有内容 delete from 表名; truncate table 表名; 不带where参数的delete语句可以删除mysql表中所有内容,使用truncate table也可以清空mysql表中所有内容.效率上truncate比delete快,但truncate删除后不记录mysql日志,不可以恢复数据. delete的效果有点像将mysql表中所有记录一条一条删除到删完,而truncate相当于保留mysql表的结构,重新创建了这个表,所有的状态都相当于新表.

MySQL的truncate table 和source 命令

1. truncate table XXX     在测试时,我很讨厌某表的主键一直自增长下去,总觉得从1开始最舒服,^_^,truncate table 就可以帮我,相比delete from 来说,它使数据表中自增长的字段起始值归为1:2.source 命令     用来执行sql脚本,在一些情况下特别管用.比如可以将一堆sql语句保存在 c:\test.sql,用source命令执行.如:     mysql> use jbpm     Database changed     mysql

truncate table与delete区别

truncate table需要drop table权限,它是完全清空一张表. 从逻辑上看,truncate table同delete 一样,或是drop table +create table一样.使用truncate table删除全表数据,要比delete要快.使用truncate table清空数据,不能进行回滚,且不受表间外键约束限制. truncate是DDL语句,而且delete是DML语句,两者区别如下: 1.truncate 是邮drop table+create table

MYSQL Truncate 引发数据表损坏案例分析

最近发布到市场的版本频繁出现数据库表损坏的情况,具体的现象是select表提示表不存在,但是查看data文件,对应表的ibd和frm文件都在. 通过对多个故障的统计,找到几个频繁出现损坏的表,在分析过程中,发现这些数据表都使用了truncate清除数据,所以怀疑是truncate操作的问题. 设计如下过程来验证这个分析结果: 1. 创建存储过程如下,对一张表模拟频繁调用TRUNCATE DROP PROCEDURE IF EXISTS prcTest5;CREATE PROCEDURE prcT

MySQL truncate含有外键约束的条目报错

1.报错信息: Cannot truncate a table referenced in a foreign key constraint 2.出现错误操作: truncate table a1; 为什么使用truncate? 使用truncate可以清空表数据,而且可以使自增列重置. 3.解决方法 在MySQL中取消外键约束:set foreign_key_checks=0; 执行truncate table a1; 之后在设置外键约束:set foreign_key_checks=1; 原

TRUNCATE TABLE 与 DELETE table 区别

语法 TRUNCATE TABLE name;参数  TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行. TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少. 原因: DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项. TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放. TRUNCATE TABLE 删除表中的所有行,但表结构