在 MySQL 中,有三种常用的方式可以删除表中的数据或整个表,它们分别是 TRUNCATE、DROP 和 DELETE。
TRUNCATE TABLE属于DDL语言,不走事务,数据不会回滚
TRUNCATE TABLE 语句会删除表中的所有数据,但保留表的结构,同时重置自增主键,释放空间
语法:
TRUNCATE TABLE table_name;
DROP TABLE属于DDL语言,不走事务,数据不会回滚
DROP TABLE 语句会完全删除表,包括表的结构和其中的数据。它会永久删除表,立即释放空间,无法撤销。
语法:
DROP TABLE [IF EXISTS] table_name;
如果指定了 IF EXISTS,则在表不存在时不会报错,直接返回操作成功。例如,DROP TABLE IF EXISTS employees; 将删除名为 employees 的表,如果该表存在的话。
DELETE属于DML操作语言,只会删除数据不会删除表结构,会走事务,可回滚
DELETE 语句用于逐行删除表中的数据,可以根据指定的条件删除特定的行。
语法:
DELETE FROM table_name [WHERE condition];
DELETE 语句是一种较为慢速和资源密集的操作,因为它将逐行删除表中的数据,并且会触发事务日志和触发器等操作。如果只是想删除表中的数据而不是整个表,TRUNCATE TABLE 操作通常更快和更高效。
使用 DELETE 语句删除表中的数据并不会立即释放磁盘空间,当你执行 DELETE 语句删除行时,实际上是将这些行标记为已删除,但数据仍然占用磁盘空间。
如果你希望立即释放磁盘空间,可以使用 OPTIMIZE TABLE 命令。该命令将重建表,并且可以压缩表的数据,从而释放已删除行所占用的空间。
到此这篇关于Mysql三种常用的删除数据或者表的方式的文章就介绍到这了,更多相关Mysql 删除内容请搜索插件窝以前的文章或继续浏览下面的相关文章希望大家以后多多支持插件窝!