pt-online-schema-change,在线修改大表结构

612次阅读
没有评论

共计 1143 个字符,预计需要花费 3 分钟才能阅读完成。

pt-online-schema-change,在线修改大表结构

简介

Online Schema Change:Online Schema Change(OSC)工具是MySQL官方提供的一种无锁变更工具,它可以在不停止MySQL服务器的情况下对表结构进行修改。OSC利用了InnoDB存储引擎的特性,使用复制和重放日志的方式来实现无锁变更。

官方文档

https://docs.percona.com/percona-toolkit/pt-online-schema-change.html

解决痛点Percona Toolkit Documentation解决痛点

修改大型表的结构:对于包含数百万甚至数十亿行的大型表,直接修改表结构可能导致长时间的锁表和性能下降。pt-online-schema-change 通过在线方式避免了这些问题。

避免业务中断:在需要修改生产环境数据库表结构时,pt-online-schema-change 可以在不影响业务正常运行的情况下进行表结构更改。

兼容各种存储引擎:pt-online-schema-change 支持各种 MySQL 存储引擎,如 InnoDB 和 MyISAM。

安装

docs.percona.com/percon

使用

参数解析

--alter:指定要执行的表结构语句

D=my_database:指定数据库名称

t=employees:指定表名称

--execute:执行表结构更改

--charset: 设置字符编码

完整演示添加字段

pt-online-schema-change h=127.0.0.1,P=3306,D=wind,t=test –user=root –ask-pass –alter “add column age tinyint(2) not null default 0” –execute

执行之前:

pt-online-schema-change,在线修改大表结构
代码执行之前的表结构是

执行过程:

pt-online-schema-change,在线修改大表结构
代码执行过程

结束之后:

pt-online-schema-change,在线修改大表结构
代码执行结束之后的表结构

添加索引

## 添加字段mobile 
pt-online-schema-change h=127.0.0.1,P=3306,D=wind,t=test --user=root --ask-pass 
--alter "add column mobile char(11) not null default ''" --charset=utf8 --execute 

## 添加索引 idx_mobile 
pt-online-schema-change h=127.0.0.1,P=3306,D=wind,t=test --user=root --ask-pass 
--alter "add index idx_mobile (mobile) " --execute 

原理

可以结合【执行过程】来理解原理。

pt-online-schema-change,在线修改大表结构
pt-online-schema-change原理
正文完
 
BlackBeans
版权声明:本站原创文章,由 BlackBeans 2023-09-20发表,共计1143字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)