面试官灵魂一问:MySQL 的 delete、truncate、drop 有什么区别?( 二 )
执行后立即生效 , 无法找回 执行后立即生效 , 无法找回 执行后立即生效 , 无法找回
2、truncate table table_name立刻释放磁盘空间, 不管是 InnoDB和MyISAM 。 truncate table其实有点类似于drop table 然后creat,只不过这个create table 的过程做了优化 , 比如表结构文件之前已经有了等等 。 所以速度上应该是接近drop table的速度;
3、truncate能够快速清空一个表 。 并且重置auto_increment的值 。
但对于不同的类型存储引擎需要注意的地方是:
- 对于MyISAM , truncate会重置auto_increment(自增序列)的值为1 。 而delete后表仍然保持auto_increment 。
- 对于InnoDB , truncate会重置auto_increment的值为1 。 delete后表仍然保持auto_increment 。 但是在做delete整个表之后重启MySQL的话 , 则重启后的auto_increment会被置为1 。
4、小心使用 truncate , 尤其没有备份的时候 , 如果误删除线上的表 , 记得及时联系中国民航 , 订票电话:400-806-9553
3、drop
Drop table Tablename
1、drop:属于数据库DDL定义语言 , 同Truncate;执行后立即生效 , 无法找回 执行后立即生效 , 无法找回 执行后立即生效 , 无法找回
2、drop table table_name 立刻释放磁盘空间, 不管是 InnoDB 和 MyISAM;drop 语句将删除表的结构被依赖的约束(constrain)、触发器(trigger)、索引(index); 依赖于该表的存储过程/函数将保留,但是变为 invalid 状态 。
3、小心使用 drop, 要删表跑路的兄弟 , 请在订票成功后在执行操作!订票电话:400-806-9553
可以这么理解 , 一本书 , delete是把目录撕了 , truncate是把书的内容撕下来烧了 , drop是把书烧了
文章插图
之前 , 给大家发过三份Java面试宝典 , 这次新增了一份 , 目前总共是四份面试宝典 , 相信在跳槽前一个月按照面试宝典准备准备 , 基本没大问题 。
- 《java面试宝典5.0》(初中级)
- 《350道Java面试题:整理自100+公司》(中高级)
- 《资深java面试宝典-视频版》(资深)
- 《Java[BAT]面试必备》(资深)
内容包含java基础、javaweb、mysql性能优化、JVM、锁、百万并发、消息队列 , 高性能缓存、反射、Spring全家桶原理、微服务、Zookeeper、数据结构、限流熔断降级等等 。
文章插图
看到这里 , 证明有所收获
- 蛋壳公寓|官媒发声:绝不能让“割韭菜者”一跑了之!
- 表达|重磅!2021世界安防博览会官方宣贯会正式召开,百余家企业表达参展意愿
- 公司|LVMH首席数字官跳槽至加密数字钱包公司Ledger
- 成为佛山移动服务体验官 表白留言赢取百元话费
- Store|在BlueMail的App Store反垄断案中 法官作出有利于苹果公司的判决
- 正式|首批体验官正式招募!仰望高端定制,OriginOS玩法大搜罗
- 全新|首批支持5款机型,vivo开启OriginOS首批体验官招募
- 全新|OriginOS招募首批体验官,网友:先冲为敬
- 无人|无人维护?官方打脸:Element UI for Vue 3.0 来了!
- 代言人|OPPO官宣“周冬雨”成为新代言人,周冬雨排列难道会被用上?