首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL数据库drop、truncate、delete的区别

1、删除速度:drop>truncate>delete; 2、删除方式: (1)执行delete操作时,每次从表中删除一行,并且同时将该行的的删除操作记录在日志文件中。...(3)drop则删除整个表的结构和数据,但是被依赖的约束、触发器、索引、依赖于该表的存储过程、函数将被保留,但其状态会变为invalid 3、删除后,表和索引所占空间: (1)delete操作不会减少表或索引所占用的空间...(3)drop语句将表所占用的空间全释放掉。...4、提交方式:delete是DML,需要手动提交操作才能生效,可以回滚,可以触发触发器;truncate和drop是DDL,会隐式提交,不能回滚,不会触发触发器。...5、使用场景: (1)如果想删除表,当然用drop; (2)如果想保留表而将所有数据删除,而且和事务无关,用truncate即可; (3)如果和事务有关,或者想触发trigger,还是用delete;

1.3K30
您找到你想要的搜索结果了吗?
是的
没有找到

Mysql指令select,update,insert,drop,truncate+MySQL数据库备份恢复

删除整个表db1.t1(表+ 数据) mysql> drop table db1.t1 2.6 删除一个db1库 drop database db1; 以后尽量不要使用drop和truncate,十分危险...---- 三、MySQL数据库备份恢复 如果不小心删除了一个数据库,那就是比较悲剧的事情了,如何在删除之前先备份呢?...当我们恢复的时候,加入一个数据库是存在的,首先会先drop掉,然后再次创建一个新的,数据表也是同理。...[[email protected]03 ~]# ls /tmp/ mysql2_tab.sql 其实我们使用mydqldump命令只是备份一些小的数据库,但是如果备份一个很大的数据库(几百G或者几T)...速度非常慢,效率比较低,待会我就整理一下如何使用另外一个数据库指令备份比较大的数据库

1.7K80

MySQLdrop和delete删用户场景

关于用户创建的文章,之前写过几篇《MySQL创建用户提示1396》《小白学习MySQL - 不同版本创建用户的些许区别》。 碰巧看到技术社群的这篇文章《同样是删用户,为啥还有差别?》...#'; Query OK, 0 rows affected (0.01 sec) # 删除用户testuser01 mysql> drop user 'testuser01'@'%'; Query OK...#'; Query OK, 0 rows affected (0.01 sec) 通过上面的例子发现,第一次创建用户testuser01之后,使用的drop的方式将用户删除,我们重新创建用户,正常创建用户成功...#'; Query OK, 0 rows affected (0.01 sec) 那么,同样是删除,为什么前面drop操作以后,用户还可以重新创建?...回到前面的例子当中,delete操作相当于对这张表删除一条记录,当内存中并未删除,这也就为什么导致了delete操作后,无法重新创建的原因了,而drop操作是将表内记录和内存中的内容一并删除。

17520

MySQLdrop、delete与truncate的区别

MySQLdrop、delete与truncate的区别 在MySQL中,drop、delete和truncate是用来删除表中数据或整个表的命令。...DROP命令 DROP命令用于删除整个表,包括表的结构和数据。它的语法如下: DROP TABLE tablename; 使用DROP命令将完全删除指定的表以及表中的所有数据。...这意味着一旦执行了DROP命令,将无法恢复表的数据。因此,在使用DROP命令之前,务必要做好备份工作。 2. DELETE命令 DELETE命令用于删除表中的一行或多行数据,但保留表的结构。...4.1 使用DROP命令 DROP TABLE students; 使用DROP命令后,"students"表将被完全删除,包括表的结构和数据。...结论 在MySQL中,DROP、DELETE和TRUNCATE是用于删除表中数据或整个表的命令。

94720

mysql怎么加载数据库_如何导入mysql数据库

展开全部 方法一: 1、首先我e68a84e8a2ad3231313335323631343130323136353331333363393134们使用MySQL提供的命令行界面来导入数据库,确保自己的电脑中安装了...MySQL数据库,我们可以通过命令行来确认是否安装了MySQL数据库,当然,第一步是打开Mysql数据库服务,我们使用命令行来打开, 2、启动MySQL后,我们找到需要用到的脚本文件,也就是数据库文件...;来导入数据库,先进入mysql, 4、首先要在数据库中建立好数据库,然后导入脚本,所以先建立一个数据库哦,不要脚本是不知道你要往哪个数据库中导入脚本的,如下图所示: 5、然后就可以输入导入.sql文件命令...: mysql> USE 数据库名; mysql> SOURCE d:/test.sql; 6、看到上面的画面,说明mysql数据库已经导入成功了哦!...现在来介绍第二种方法,使用mysql图形工具导入数据库,我们还是使用test.sql脚本来说明:方法二: 使用Navicat for MySQL图形界面来导入数据库,使用图形界面导入数据库的步骤很简单,

35.4K20

MySQL之delete user和drop user 的区别

MySQL之delete user和drop user 的区别 Tip:在MySQL中,我们经常需要创建用户和删除用户,创建用户时,我们一般使用create user或者grant语句来创建,create...在一些测试用户创建完成之后,做完测试,可能用户的生命周期就结束了,需要将用户删除,而删除用户在MySQL中一般有两种方法,一种是drop user,另外一种是delete from mysql.user...再开看看drop的方法删除用户 首先,我们删除掉刚才的那两个用户,然后使用show grants for语句查看他们的权限: mysql ::>>drop user yeyz@'%'; Query OK..., rows affected (0.00 sec) mysql ::>>drop user yeyz@'localhost'; Query OK, rows affected (0.00 sec)...这个演示也解决了一些新手朋友们的一个疑问:为什么我的用户只有usage权限,却能访问所有数据库,并对数据库进行操作?

1.4K10

MySQL中使用undrop来恢复drop的表(上)

而如果是DDL,比如DROP,那就得叹声气了。...GitHub上有一个很不错的项目是undrop,基于InnoDB,也就意味着如果你所在的环境有了drop操作还是存在恢复的可能了,当然这个过程需要谨慎,建议大家在测试环境先练习测试论证后再做决定,当然我们希望这个工具永远不要排上用场...http://mysql.taobao.org/monthly/2017/11/01/,所以引起了我的注意,带着好奇心,自己也测试一把。 ? 安装部署很简单。...mysql_config --cflags` `$basedir/bin/mysql_config --libs` -o sys_parser sys_parser.c 这个工具的一个基本原理就是解析ibdata.../stream_parser -f /U01/mysql_5.7_test/n1/ibdata1 Opening file: /U01/mysql_5.7_test/n1/ibdata1 File information

2.1K50

GreatSQL5.7数据库DROP表后无法重建

一、数据库信息: 数据库版本:5.7.21-log 某银行测试数据库,APP业务库内有一个含有大量(几百个)分区表的大表test_app。DROP该分区表的大表后导致无法重建该分区表。...二、问题描述: 客户使用“drop table test_app;”时,显示表删除成功。...DDL没有原子性,drop表的删除动作没有执行完成; 3.2> 进入数据库“show tables”查看test_app表已不存在; 3.3> 进入数据库所在的目录下,查看test_app表的相关文件。...; 4.4> 进入业务数据库APP,可以看到test_app表; 4.5> 执行“drop table test_app;”语句,成功删除了表。...5.3> 删除test_app表drop table test_app; 5.4> 重启数据库。 5.5> 再执行test_app表的建表语句,建表成功。 Enjoy GreatSQL :)

7110

如何修改MySQL数据库名称

比如数据库名称old_db想改名为new_db MySQL修改数据库名称比较麻烦,不支持直接修改,需要通过其它方式间接达到修改数据库名称的目的。...在 MySQL 5.1.23 之前的旧版本中,我们可以使用 RENAME DATABASE 来重命名数据库,但此后版本,因为安全考虑,删掉了这一条命令。...(MySQL没有单个语句的操作),移动后原始数据库继续存在,但是里面没有表。...new_db; 2.2 使用RENAME TABLE命令修改表名,将表移动到新的库里: rename table old_db.tb to new_db.tb; 2.3 完成后删除旧库: drop database...old_db; 2.4 如何使用shell脚本来批量修改表名: 当库下表比较多的时候,用上面方法纯手动也不现实,好在linux下可以用shell脚本来批处理。

17.7K10

MySQL删除表数据、清空表命令(truncate、drop、delete 区别)

一、MySQL清空表数据三种方法1.1 清空表数据:truncatesql命令#清空多张表、库中所有表的数据truncate table table_name1,table_name2,......也不释放空间delete可以删除一行、多行、乃至整张表每次删除一行,都在事务日志中为所删除的每行记录一项,可回滚如果不加where条件,表示删除表中所有数据,仅删除数据、保留表结构,同时也不释放表空间MySQL...,谨慎使用drop、truncate。...drop:删除整个表,包括表结构和数据。适用于不再需要表结构的情况。...drop:不可回滚,一旦执行,表结构和数据都将被永久删除。触发器:truncate:不会触发触发器。delete:会触发触发器。drop:不会触发触发器,因为它是删除整个表。

16.4K13

MySQL数据库如何实现AX规范

MySQL 为我们提供了分布式事务解决方案,在前面的内容中 聊一聊分布式事务的解决方案 提到过 binlog 的同步,其实是 MySQL XA 规范的一个应用,那么 XA 规范是如何定义的,具体又是如何应用的呢...MySQL 有哪些一致性日志 问你一个问题,如果 MySQL 数据库断电了,未提交的事务怎么办?...MySQL 如何实现 XA 规范 MySQL 中 XA 事务有两种情况,内部 XA 和外部 XA,其区别是事务发生在 MySQL 服务器单机上,还是发生在多个外部节点间上。...MySQL 外部 XA 主要应用在数据库代理层,实现对 MySQL 数据库的分布式事务支持,例如开源的数据库中间层,比如淘宝的 TDDL、阿里巴巴 B2B 的 Cobar 等。...总结 本文介绍了 MySQL 一致性相关的几种日志,并分享了 MySQL 的 XA 规范相关内容,以及内外部 XA 事务如何实现。

21011
领券