首页 > 代码库 > percona-toolkit在线添加删除mysql索引、字段(不锁表)
percona-toolkit在线添加删除mysql索引、字段(不锁表)
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引擎,缺点是执行时间比较慢,但是不会锁表,如果想同时执行几个操作,直接逗号分隔就好。
本文出自 “成都@阿状” 博客,请务必保留此出处http://azhuang.blog.51cto.com/9176790/1588019
percona-toolkit在线添加删除mysql索引、字段(不锁表)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。