Drop 操作是默认提交的 , 而且是不可逆的 , 在数据库操作中都是跑路的代名词 , MySQL 层面目前没有相应的 Drop 操作恢复功能 , 除非通过备份来恢复 , 但是我们可以考虑将 Drop 操作转换为一种可逆的 DDL 操作 。
MySQL 中默认每个表有一个对应的 ibd 文件 , 其实可以把 Drop 操作转换为一个 rename 操作 , 即把文件从 testdb 迁移到 testdb_arch 下面 。
从权限上来说 , testdb_arch 是业务不可见的 , rename 操作可以平滑的实现这个删除功能 , 如果在一定时间后确认可以清理 , 则数据清理对于已有的业务流程是不可见的 , 如下图所示:
文章插图
此外 , 还有两个额外建议 , 一个是对于大表变更 , 尽可能考虑低峰时段的在线变更 , 比如使用 pt-osc 工具或者是维护时段的变更 , 就不再赘述了 。
最后总结一下 , 其实就是一句话:千万级大表的优化是根据业务场景 , 以成本为代价进行优化的 , 绝对不是孤立的一个层面的优化 。
【MySQL千万级大表优化,看这一篇就忘不掉了】
推荐阅读
- 夏季如何预防蚊虫 千万别点蚊香
- 一条MySQL报警的分析思路
- 千万级 高并发“秒杀”架构设计
- MySQL 8.0 InnoDB无锁化设计的日志系统
- 湖南石门,政府招标采购千万良种茶苗公告
- MySql主从复制,从原理到实践
- 泰安市近千万元专项扶持资金促推泰山茶发展
- 历时七天,史上最强MySQL优化总结,从此优化So Easy
- 汽车维修后千万别错过这2个检查
- 房贷没放款前千万不要做的事 房贷没放款能领结婚证么