在实际生产过程中,如果有一张表A,数据量是千万级。如何有效的为表A新增一个字段,或者变更表A的某个字段呢?
我目前采用的方法如下:
1、将A表的数据导出到一个临时文件中tmp.unl
2、新建一张临时表Atmp,最好是无日志类型的
3、将tmp.unl中的数据导入到Atmp表中
4、删除表A
5、将Atmp表更名为A
6、将表A设置为标准表,同时为Atmp增加索引
这样的话,会导致表A中的数据落地,想问有没有更好的解决方法呢?
在实际生产过程中,如果有一张表A,数据量是千万级。如何有效的为表A新增一个字段,或者变更表A的某个字段呢?
我目前采用的方法如下:
1、将A表的数据导出到一个临时文件中tmp.unl
2、新建一张临时表Atmp,最好是无日志类型的
3、将tmp.unl中的数据导入到Atmp表中
4、删除表A
5、将Atmp表更名为A
6、将表A设置为标准表,同时为Atmp增加索引
这样的话,会导致表A中的数据落地,想问有没有更好的解决方法呢?
7 回答5.6k 阅读
4 回答4.2k 阅读
2 回答962 阅读✓ 已解决
5 回答1.5k 阅读
2 回答2.2k 阅读
2 回答3.5k 阅读
1 回答1.2k 阅读✓ 已解决
MySQL 5.6以上的话,加列通常不会锁表的。相当于MySQL自动帮你把步骤1到6都给做了。
详情参阅: https://dev.mysql.com/doc/ref...