online DDL的流程
具体的操作如下图,和离线的差异在于,多了一个文件记录写入请求 最后做合并
三种重建表的方式
- 从 MySQL 5.6 版本开始,alter table t engine = InnoDB(也就是 recreate)默认的就是上面的流程了;
- analyze table t 其实不是重建表,只是对表的索引信息做重新统计,没有修改数据,这个过程中加了 MDL 读锁;
- optimize table t 等于 recreate+analyze。
具体的操作如下图,和离线的差异在于,多了一个文件记录写入请求 最后做合并