线上运行的一张数据库表目前数据量已有300多万条数据,且里面加了索引,由于需求的原因:新增新增一个字段,但是表的数据线上每天都在动态的增加。
添加字段的sql如下:
ALTER TABLE `live_user_watch_report_log` ADD COLUMN `num` int(10) DEFAULT NULL COMMENT '直播期数';
直接执行该sql,显示:
解决思路
1. 新建备份表
2. 备份今日之前的数据到备份表中
3. 删除表中今日之前的数据,执行新增字段的sql语句(数据少执行能成功)
4. 将备份表中的数据还原到表中
备份数据需要用到的ddl语句:
同一张表中复制(全复制)
insert into 表1 select * from 表2 where id =** ;
同一张表中复制(部分复制)
insert into 表1(字段1,字段2,字段3) select 字段1,字段2,字段3 from 表1 where id= ** ;