需要对A表的XXX字段扩容至varchar(500)
线上A表有100G+的数据,如果直接modify XXX varchar(500),会锁全表,即使用pt-osc工具凌晨搞,预估一宿加不完,并且从库会出现大面积延迟,读取的数据将不准确。
https://dev.mysql.com/doc/refman/8.0/en/innodb-online-ddl-operations.html
1)生成一张新表A_new,对A_new表进行modify XXX varchar(500),新的数据直接insert到A_new表里。
2)关联老表用union all。例如
select * from A where ......
union all
select * from A_new where .......
3)由于老表的数据是死的,不会产生update变化,所以用该方案实施的代价是最小的,只需业务更改一下业务逻辑即可。
4)沟通确定后,落地实施。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。