故事背景最近我们遇到了一个看似简单但背后很有坑的需求:在千万级订单表中新增一个业务字段。需求来自隔壁项目组,他们需要这个字段做一些统计分析。从开发角度看,这事很常见,**新增字段嘛,直接ALTER TABLE加一下不就行了?**但问题是——订单表是线上核心表,千万级数据,直接执行DDL语句极有可能锁表,影响线上业务运行,后果严重。于是问题就来了:在不影响线上业务的前提下,怎么给千万级订单表加字段?1. DDL操作会锁表,线上执行慎之又慎我们最初考虑的方案是直接在主库执行: ALTER TABLE order ADD COLUMN new_field VARCHAR(255); 理论上只是一条S...