mysql快速修改表结构
Published on: | Views: 88简介
发布的时候经常要修改表的结构,但是传统方法容易锁表,导致线上访问被阻塞,并且修改速度非常慢(并发访问时加锁要等很久,甚至不得不停机修改),这种情况下我们可以借助一个工具来修改,它可以不锁表,不阻塞访问,它就是pt-online-schema-change, 一个非常棒的工具。 官方地址: https://www.percona.com/doc/percona-toolkit/3.0/pt-online-schema-change.html
它的原理是通过复制表数据的方法来实现不锁表修改表结构。
用法
// 使用--dry-run来测试有没有问题
pt-online-schema-change --dry-run --alter "修改语句" D=数据库,t=表 -h 地址 -P 端口 -u 用户 -p 密码
// 执行修改
pt-online-schema-change --execute --alter "修改语句" D=数据库,t=表 -h 地址 -P 端口 -u 用户 -p 密码
示例1:
pt-online-schema-change --alter "ADD COLUMN c1 INT" D=sakila,t=actor
示例2:
pt-online-schema-change --alter "ENGINE=InnoDB" D=sakila,t=actor
更具体的选项解释见: https://www.percona.com/doc/percona-toolkit/3.0/pt-online-schema-change.html#options