大数据表修改表结构技巧

MySQL表结构修改,实际就是按修改后的结构和属性创建新表再将原表记录写入。
如果表记录太多,可能会导致执行时间较长。
当然有些情况也可以避免重建表并写入记录。
1.修改缺省值
    假设有一张表,字段需要修改默认值,那么可以使用alter colnum
alter table 表名 alter column 字段名 set default 1;

2.修改字段注释、枚举字段末端增加新值等
可以按如下步骤:
创建一张有相同结构的空表,并进行需要的修改

执行flush tables with read lock,这将会关闭所有正在使用的表,并禁止任何表被打开。

交换.frm文件

执行unlock tables来释放第二步的读锁
确认无误后,删除新建表
例:

#create table 新表名 like 原表名;

#flush table with read lock;

#unlock tables;
mv 原表名.frm 原表名tmp.frm
mv 新表名.frm 原表名.frm
mv 原表名tmp.frm 新表名
注意:以上操作有一定风险。

以下的操作可能不需要重建表:

1.移除一个列的自增长属性

2.增加、删除或者修改enum和set常量

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乐大师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值