【Mysql】- pt-online-schema-change在线更新大表字段、加索引

线上order表的数据已经将近千万,需要启动一个废弃的字段,更新字段长度,并且加索引:

更新字段类型:

pt-online-schema-change --charset=utf8 --no-check-replication-filters --no-version-check --user=user --password=pass --host=host_addr P=3306,D=shop,t=order --alter "MODIFY COLUMN parent_id int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '上级id' AFTER is_separate" --execute

 

添加索引:

pt-online-schema-change --charset=utf8 --no-check-replication-filters --no-version-check --user=user --password=pass --host=host_addr  P=3306,D=shop,t=order --alter "add INDEX parent_id(parent_id)" --execute

 

关于online-schema-change

是percona推出的一个针对mysql在线ddl的工具

percona是一个mysql分支维护公司,专门提供mysql技术服务的。我的理解,类似于linux的分支redhat公司

官网下载地址为:http://www.percona.com/redir/downloads/percona-toolkit/2.2.1/percona-toolkit-2.2.1.tar.gz

 

原理上:

在进行表结构的修改的时候,会先建立一个临时的表,然后进行原表的数据拷贝与结构修改,与此同时会在原表上建立触发器(update,insert,delete),把数据同步到临时表上,当临时表修改完毕后,最后进行一下表明的更改,所以理论上锁表的时间会很短。

注:表一定要有主键

posted @   蓝色星辰1993  阅读(730)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示