mysql超大表不中断不锁表如何操作,pt-online-sch

2022-11-27  本文已影响0人  chichoyi

背景

线上有一条语句查询太慢,定位到的是关联字段没加索引,需要加索引。
但是该字段是varchar类型,而且前期没有考虑清楚,varchar定了1000,太长是加不了索引的。
可是该数据表的数据超过六百万,直接修改字段再加索引肯定是很慢而且会被锁表,bd之后,选择了pt-osc

注意点

原理

安装

安装比较简单,直接官网安装,不要在数据库所在服务器安装操作,在本地其实也可以的,pa网络断的话,去线上其他服务器也是可以的。

wget https://downloads.percona.com/downloads/percona-toolkit/3.3.1/source/tarball/percona-toolkit-3.3.1.tar.gz

tar -xvf percona-toolkit-3.3.1.tar.gz

#安装依赖
yum install perl-DBI
yum install perl-DBD-MySQL
yum install perl-Time-HiRes
yum install perl-IO-Socket-SSL
yum -y install perl-Digest-MD5

#测试可用
./pt-online-schema-change --help

操作

具体操作

#添加字段
./pt-online-schema-change --user=xxxx --password=xxxx  --host=xxx.xxx.xxx.xxxx  --alter "add column  group_id bigint(20) not NULL default '0'  comment 'test' " P=30306,D=h_pushcenter,t=h_message  --charset=utf8 --no-version-check --print --execute

参考文章:
https://zhuanlan.zhihu.com/p/384633693

上一篇 下一篇

猜你喜欢

热点阅读