您的位置:首页 > 博客中心 > 数据库 >

percona-toolkit在线添加删除mysql索引、字段(不锁表)

时间:2022-03-14 03:37

1.安装配置

 yum install perl-DBD-MySQL perl-Time-HiRes perl-IO-Socket-SSL perl-DBI perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker -y
 cd /root/soft
 tar zxvf percona-toolkit_2.2.11.tar.gz
 cd percona-toolkit-2.2.11
 perl Makefile.PL
 make
 make install

2.pt-online-schema-change工具使用

  #查看操作的数据表结构

2.1在线添加字段,不锁表

pt-online-schema-change -uroot -hlocalhost -p123 -S /tmp/mysql.sock  --alter=‘add column name char(4)‘ --execute D=test,t=user

 #-S 如果有sock需要添加sock路径, name表示要添加的一个字符型字段名, D 表示test数据库名,t 表示user表名 

 #执行结果如下:

2.2在线增加索引,不锁表

pt-online-schema-change -uroot -hlocalhost -p123 -S /tmp/mysql.sock --alter=‘add index user_id(u_id,g_id)‘ --execute D=test,t=user

 #创建一个组合索引user_id(u_id,g_id)

 #执行结果如下:

2.3在线删除索引,不锁表

pt-online-schema-change -uroot -hlocalhost -p123 -S /tmp/mysql.sock --alter=‘drop index user_id‘ --execute D=test,t=user

 #-S 如果有sock需要添加sock路径,user_id表示要删除的索引名, D 表示test数据库名,t 表示user表名

 #执行结果如下:

 

2.4在线删除字段,不锁表

pt-online-schema-change -uroot -hlocalhost -p123 -S /tmp/mysql.sock --alter=‘drop column name‘ --execute D=test,t=user

 #-S 如果有sock需要添加sock路径, name表示要添加的一个字段名, D 表示test数据库名,t 表示user表名

 #执行结果如下:

 



备注:操作的表必须有主键否则将会报错,此工具适合MyISAM和InnoDB引擎,缺点是执行时间比较慢,但是不会锁表,如果想同时执行几个操作,直接逗号分隔就好。

本文出自 “” 博客,请务必保留此出处

热门排行

今日推荐

热门手游