mysql 如何给几千万表添加字段

2023-06-13 14:33:55 +08:00
 fanyingmao
条数一多,加字段就要好久,有没什么简单方法,还是可以让运维处理。
1616 次点击
所在节点    MySQL
9 条回复
opengps
2023-06-13 14:37:05 +08:00
优先考虑下扩展表之类的方案,单独加一个新的表,用逻辑外键的思路去补充需要额外保存的信息列
fanyingmao
2023-06-13 14:44:56 +08:00
@opengps 扩展表的缺点就是就是,数据库要多插一次,还有多了些字段,不过也可以吧。这次估计还要多备几个字段预防后面业务变化了。
ljsh093
2023-06-13 14:55:16 +08:00
预留一个 text 列以 json 形式存取
JinTianYi456
2023-06-13 15:39:57 +08:00
@fanyingmao #2 `多备几个字段` 列转行,考虑不?这样基本无字段问题了
rootx
2023-06-13 15:41:07 +08:00
阿里云的不锁表方案 是新建一个表 然后复制数据 最后再用 binlog 同步一下 最后切换 收费 12 块钱一天
brader
2023-06-13 15:44:54 +08:00
我在生产中实际使用的主要有两种方案:
方案一:选择在业务低峰期加字段,代价是某些模块接受短暂时间的无法写入。
方案二:复制一个新表,新表加新字段,然后把旧表数据插入新表,插入完之后,rename 两个表
OpenSea
2023-06-13 15:54:42 +08:00
1.新建 table-copy ,增加字段
2.rename origin table to old-table
3.rename table-copy to origin table
4.insert into origin table select * from old table
SpMozzi
2023-06-13 16:04:06 +08:00
市面上有 2 个开源的工具都可以做到 Online DDL
1. percona 开源工具 pt-online-schema-change
2. github 上 gh-ost
dw2693734d
2023-09-17 20:52:08 +08:00
postgresql 的优越性就在这里体现出来了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/948330

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX