100G大表Alter更改表结构技术方案探讨
  FDpwo5yIejAq 2023年12月07日 25 0

JAVA研发需求:

需要对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

100G大表Alter更改表结构技术方案探讨_数据


DBA提出的技术方案:

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)沟通确定后,落地实施。




【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月07日 0

暂无评论

推荐阅读
  xaeiTka4h8LY   2024年05月31日   34   0   0 MySQL索引
  xaeiTka4h8LY   2024年05月31日   46   0   0 MySQLSQL
  xaeiTka4h8LY   2024年05月31日   30   0   0 字段MySQL
  xaeiTka4h8LY   2024年05月31日   40   0   0 MySQL数据库
  xaeiTka4h8LY   2024年05月17日   52   0   0 数据库JavaSQL
  xaeiTka4h8LY   2024年05月17日   47   0   0 MySQLgithub
  xaeiTka4h8LY   2024年05月17日   38   0   0 MySQL数据库
FDpwo5yIejAq