千万级数据表如何有效的变更字段?

在实际生产过程中,如果有一张表A,数据量是千万级。如何有效的为表A新增一个字段,或者变更表A的某个字段呢?
我目前采用的方法如下:
1、将A表的数据导出到一个临时文件中tmp.unl
2、新建一张临时表Atmp,最好是无日志类型的
3、将tmp.unl中的数据导入到Atmp表中
4、删除表A
5、将Atmp表更名为A
6、将表A设置为标准表,同时为Atmp增加索引

这样的话,会导致表A中的数据落地,想问有没有更好的解决方法呢?

阅读 4.9k
1 个回答

MySQL 5.6以上的话,加列通常不会锁表的。相当于MySQL自动帮你把步骤1到6都给做了。

详情参阅: https://dev.mysql.com/doc/ref...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进