前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >100G大表Alter更改表结构技术方案探讨

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

原创
作者头像
贺春旸的技术博客
发布2023-12-06 21:13:02
1630
发布2023-12-06 21:13:02
举报
文章被收录于专栏:DBA 平台和工具DBA 平台和工具

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

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • JAVA研发需求:
  • 目前的现状:
  • DBA提出的技术方案:
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档