mysql大表更新comment方案

最近由于业务需要,要更新一个mysql大表的部分字段的comment,于是,首先想到的是用alter table xxx modify。本以为mysql的modify命令可以做到只是简单修改frm文件,然而它有一个致命的弱点,那就是modify命令必须加上字段定义。官方语法如下:

| MODIFY [COLUMN] col_name column_definition
        [FIRST | AFTER col_name]

可以看到,一定需要加上column_definition。所以,这样一来,modify操作肯定就不是简单的修改frm文件了,他会遍历表里面每一行数据,然后修改该字段。这对于一个上亿条数据的大表来说,简直就是噩梦。这样的操作可能需要几个小时甚至几天,于是我果断抛弃了这一方案。

后来我想了一下,comment不就是在frm文件里面,如果我们能够自己修改frm文件,那不就可以了。于是便有了如下方案:

①:在test库下建一个与原表a一模一样的表test.a,除了要更新的那几个字段的comment不一样。
②:关闭mysql。
③:mv a.frm /tmp
④:cp -p test/a.frm ./ (-p 为了保证权限等属性没有被改动)
⑤:启动mysql

done。果然可以。

注:我这个mysql版本是:5.5.40-36.1

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值