[mysql] [未完待续] 添加表字段导致空间暴涨

网友投稿 596 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;

/*新表数据写入旧表*/

[mysql] [未完待续] 添加表字段导致空间暴涨

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小时内删除侵权内容。

上一篇:mysql热备份xtrabackup
下一篇:java实现俄罗斯方块项目
相关文章