MySQL执行add column操作时,会经历如下步骤:
A.对表加锁(表此时只读)
B.复制原表物理结构C.修改中间表的物理结构
D.把原表数据导入中间表中,数据同步完后,锁定中间表,并删除原表
E.rename中间表为原表
F.刷新数据字典,并释放锁
从上述步骤来看,使用alter table更改mysql的表结构时,是否使用after关键字,对于整体性能不会有太大影响,主要的性能瓶颈易发生在步骤D-从源数据表到新数据表的数据copy过程。
所以,如果涉及到对大数据量的数据表进行增加字段,建议选择无业务量时进行操作。
当然,还有其他的解决方案,此处不再赘述,其他网友已经有了很好的解决方案了,可以百度一下or Google
此仅作为自己工作中遇到问题解决过程中的一个记录