VP导航 VP导航
首页 提交网址

资讯文章 资讯 · NEWS

大表加个字段要停多久:目录站的在线改表该怎么选

2026-10-24 约 1,307 字 预计阅读 3 分钟 yiyunkj

大表加个字段要停多久:目录站的在线改表该怎么选 大

目录站的数据模型有个特点:一张宽条目表,字段越加越多,索引也越加越多。表小的时候怎么改都行,过了千万行,同样是 ALTER TABLE,代价能差出几百倍。

差别来自 MySQL 选择的算法。共有三档,先弄清楚它在哪一档,再决定能不能直接执行。

三种 DDL 算法的代价与适用场景对照

图片来源:网络,版权归原作者所有,侵权请联系删除

三档算法,代价完全不同

算法做了什么代价典型耗时(千万行)
INSTANT只改元数据,不动行几乎为零秒级
INPLACE原地重建索引,不建临时表占用 IO 和 CPU,仍需扫描分钟到几十分钟
COPY建新表、拷数据、重命名额外磁盘约等于表大小,全程锁写几十分钟到小时级

INSTANT 是从 MySQL 8.0.12 开始有的,最早只支持在表尾加列;8.0.29 之后放开到删列和更灵活的位置。8.0.28 起重命名列也能走 INSTANT。好消息是,只要操作支持,MySQL 默认就用 INSTANT,不用显式声明。

所以第一步不是想方案,是先问它这次会用哪种算法。做法是显式写上 ALGORITHM=INSTANT 执行,不支持的话它会直接报错,而不是悄悄降级成 COPY。想验证另一种算法,同样显式指定,让它报出来。

不支持 INSTANT 的时候

改列类型、改字符集、加全文索引这些,INSTANT 帮不上忙。这时候有两条路:接受一次 INPLACE 的代价,或者用工具做影子表迁移。

pt-online-schema-change 和 gh-ost 都属于后者,思路一致:建一张新表改好结构,把老数据分批拷过去,同时把拷贝期间的增量变更同步过去,最后在极短的时间里把两张表换名。两者的区别在增量怎么拿:pt-osc 在老表上建触发器,gh-ost 去读 binlog。

选哪个看环境。触发器方案对表上已有的触发器冲突,也会在有外键的表上麻烦一些;读 binlog 的方案不碰原表,但要求 binlog 格式和权限都配好,对主从延迟更敏感。两个工具都支持限速和暂停,这是它们比直接 ALTER 强的地方——卡住了能退。

执行前要算的三笔账

磁盘:COPY 和大部分 INPLACE 都需要额外空间,量级接近一张表。磁盘剩 20% 的机器上跑大表改结构,是把一次变更变成一次事故的最短路径。

从库延迟:主库上不管什么算法,从库都要重放一遍。大事务会让延迟直线上升,读从库的页面跟着读到旧数据。限速参数就是为此存在的,宁可慢一点。

锁:LOCK=NONE 是能争取的最好情况,但某些操作仍会在开始和结束的瞬间拿元数据锁。有长事务卡在那里的时候,连这个瞬间都过不去,会被后面的查询堵住一片。

顺序和退路

我的执行习惯是:先在从库上跑一遍拿到真实耗时,再挑低峰期上主库;老表改名保留至少一天,别立刻删;改完立刻看一遍慢查询和从库延迟,确认没有跟着变坏。

还有一点,代码和数据库要分开发。先上能兼容两种结构的代码(新字段可空、读的时候有兜底),再改表,最后再上依赖新字段的逻辑。反过来做的话,中间那几分钟页面一定报错。

索引本身该不该加、怎么组合,和这次改结构是两件事,之前在条目表复合索引那篇里单独写过。

加字段本身不是难事,难的是没人知道这次会花多久。把"这次用哪种算法、预计多久、需要多少磁盘"写成一条上线前必须回答的问题,事故率会立刻降下来。

本文标签 在线DDL 大表变更 数据库运维
← 上一篇 限流规则把搜索引擎一起挡了:目录站的爬虫白名单该怎么 下一篇 → 条目页上那个「更新于」不能乱改:目录站的日期标注规矩

— 本文完 —

提交网址

发现好站,欢迎自荐收录

站内搜索

站点统计

  • 今日审核0
  • 已收录站点3744
  • 正常访问3738
  • 失联站点6
  • 累计访问175

网站分类

  • AI工具 0
    AI对话0 AI绘画0 AI写作0 AI编程0 AI音视频0 AI办公效率0
  • 开发编程 0
    前端开发0 后端开发0 移动开发0 开源与代码托管0 数据库0 开发文档与教程0
  • 设计素材 0
    UI设计0 图标素材0 免费图库0 字体下载0 配色工具0 设计模板0
  • 站长工具 0
    网站统计0 SEO工具0 域名与主机0 收录提交0 建站程序0 运维监控0
  • 学习教育 0
    编程教程0 语言学习0 职业技能0 公开课与慕课0 考试题库0 中小学教育0
  • 生活服务 0
    交通出行0 外卖点餐0 房产租房0 医疗健康0 政务办事0 快递物流0
  • 影音娱乐 0
    影视观看0 音乐音频0 游戏资源0 短视频直播0 小说阅读0
  • 电商购物 0
    综合商城0 比价工具0 导购返利0 二手交易0 团购优惠0
  • 综合其他 1
    实用工具0 资源合集0 小众站点0 个人博客0 论坛社区0
  • 新闻资讯 0
    科技资讯8 财经媒体1 行业动态0 社会热点0 综合门户0
  • 资讯文章 400

最新收录

  • 机器先过一遍,人工再看一遍:目录站的
  • Compose 用得好好的,要不要上
  • 条目页写多少字才不算薄:目录站的内容
  • 给合作方开一个沙箱:目录站的对接环境
  • 备份一直有,恢复从来没试过:目录站的
  • 统计里那些「用户」其实是爬虫:目录站
  • 条目页上那个「更新于」不能乱改:目录
  • 大表加个字段要停多久:目录站的在线改

浏览排行

  1. 满分作文网 6
  2. Let's Enhance 3
  3. 淘菜菜 3
  4. MasterClass 3
  5. TypeScript 中文网 3
  6. Zhengziying 3
  7. 得意生活 3
  8. 镇江网友之家 3

联系我们

bQ:12345678

电话:400-8888-888

邮箱:admin@example.com

时间:09:00-21:00

友情链接

车机屋·焊锡条·探兔AI导航·静电测试仪·大学生联盟·转让侠

关于我们|广告合作|隐私条款|网站地图

原ICP备00000000号-1,@2026

由 Z-BlogPHP 驱动