MySQL alter Table添加列的性能

时间:2020-12-07 10:04:51


MySQL执行add column操作时,会经历如下步骤:

A.对表加锁(表此时只读)

B.复制原表物理结构
C.修改中间表的物理结构
D.把原表数据导入中间表中,数据同步完后,锁定中间表,并删除原表
E.rename中间表为原表

F.刷新数据字典,并释放锁


从上述步骤来看,使用alter table更改mysql的表结构时,是否使用after关键字,对于整体性能不会有太大影响,主要的性能瓶颈易发生在步骤D-从源数据表到新数据表的数据copy过程。

所以,如果涉及到对大数据量的数据表进行增加字段,建议选择无业务量时进行操作。

当然,还有其他的解决方案,此处不再赘述,其他网友已经有了很好的解决方案了,可以百度一下or GoogleMySQL alter Table添加列的性能


此仅作为自己工作中遇到问题解决过程中的一个记录