换引擎与大表避坑要点
- ALTER TABLE 表 ENGINE = InnoDB 可切换存储引擎
- 很多 ALTER 在MySQL里会建临时表再改名,耗时随数据量增长
- 大表改结构尽量选低峰期,并预估锁表时长
- 优先用支持在线 DDL 的方式,减少写阻塞
- 改前用相同结构的影子表演练,确认无误再上生产
- 长 ALTER 可能被超时杀掉,用工具分步或后台执行
换引擎与大表避坑示例
-- 显式指定存储引擎
ALTER TABLE staff ENGINE = InnoDB;
-- 大表加索引也走 ALTER(具体见索引专题)
ALTER TABLE staff ADD INDEX idx_phone (phone);
避坑提醒:大表 ALTER 前先估算行数和数据量,能在线 DDL 就别用会锁全表的老写法,必要时用 pt-osc 类工具。