MySQL数据迁移实战:ALTER TABLE操作避坑指南
上周给客户迁移数据库时,差点被ALTER TABLE坑到加班到凌晨。总结几个新手容易忽略的细节,希望大家别重蹈覆辙。
1. 改字段类型导致数据截断:把varchar(255)改成int时,没注意原有数据包含字母,直接报错中断迁移。后来学乖了,先用SELECT检测异常值,再用临时字段过渡。
2. 忘记锁表引发的惨案:在业务高峰期直接执行ALTER,导致线上请求堆积。现在必先show processlist确认连接数,要么用pt-online-schema-change工具。
3. 编码转换暗坑:utf8mb4转latin1时,emoji表情全变成问号。建议迁移前先跑个测试脚本,特别要检查评论内容和用户昵称字段。
4. 自增ID重置陷阱:在测试环境用TRUNCATE清空表后,生产环境误操作导致用户ID从1开始重新计数...现在看到auto_increment就条件反射备份。
最稳的做法还是先导出一份测试数据,在本地跑完所有DDL语句再上生产。你们在改表结构时还遇到过什么坑?欢迎补充避坑经验。
最新打赏

