1. 在线执行大表的DDL操作

使用percona提供的工具进行大表的在线DDL操作,如添加字段、删除字段、修改字段属性等
原理
  1. 创建一个和原来表结构一样的临时表并ddl
  2. 将原表数据写入到临时表中(通过insert ...select方式),并且在原表上创建触发器,如果原表有数据写入,通过触发器方式将新增的数据写入临时表中(前提该表之前没有触发器)
  3. 写入完后,重命名临时表和原表名称
  4. 删除原表
使用方法
  1. 下载 wget http://percona.com/get/percona-toolkit.tar.gz
  2. 安装依赖 yum install perl-devel perl-Time-HiRes perl-DBI perl-DBD-MySQL -y
  3. 测试 ./pt-online-schema-change --user=用户名 --password=密码 --host=127.0.0.1 --alter "ADD COLUMN app VARCHAR(10) NOT NULL" D=数据库名,t=表名 --dry-run
  4. 真正执行 ./pt-online-schema-change --user=用户名 --password=密码 --host=127.0.0.1 --alter "ADD COLUMN app VARCHAR(10) NOT NULL" D=数据库名,t=表名 --execute
参考官方文档:https://www.percona.com/doc/percona-toolkit/2.1/pt-online-schema-change.html
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容