mysql 5.5之前 表插入字段的其实很奇妙,在表添加索引修改列等操作时,竟然会锁表,这样在大表中添加列或添加索引就是灾难级的了,直接堵塞了所有操作。
那么解决这种方式要怎么做?

  1. 首先新建Temp table,表结构是 ALTAR TABLE 新定义的结构
  2. 然后把原表中数据导入到这个Temp table(最好是将原表加上读锁,别让数据进来,避免数据不一致;或者是在原表加一个触发器,让在导入过程中原表的写入操作也同步到新表中)
  3. 删除原表
  4. 最后把临时表rename为原来的表名

有这样的一个工具: pt-online-schema-change ,可以解决这样的增减字段问题,是公司同事安利的,可以试一下。

参考自:
mysql 5.6原生Online DDL解析
pt-online-schema-change使用说明、限制与比较




X