230_mysql_binlog结构组成(mysql binlog详解)
576
2022-05-28
背景:
应用变更方案:
/*改名建新表,避免数据丢失*/
CREATE TABLE tihuan_new like tihuan;
ALTER TABLE tihuan_new
ADD COLUMN create_time timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP(0);
RENAME TABLE tihuan TO tihuan_old, tihuan_new TO tihuan;
/*旧表添加时间字段*/
ALTER TABLE tihuan_old
ADD COLUMN create_time timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP(0);
/*将旧表表名改回去*/
RENAME TABLE tihuan TO tihuan_new, tihuan_old TO tihuan;
/*新表数据写入旧表*/
insert into tihuan (select * from tihuan_new);
drop table tihuan_new;
问题:
/*旧表添加时间字段*/
ALTER TABLE tihuan_old
ADD COLUMN create_time timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP(0);
该步骤导致磁盘空间暴涨,现场已经没有,初步排查是undo空间暴涨导致。
解决方案:
1.drop掉tihuan_old表索引,修改完字段在重新创建。
2.将命令分解执行,添加字段(add),修改新加列默认值(modify),更新新加列值(update)。
未完待续
Mysql 数据库
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。