码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2014-12-09 19:53:20      阅读:432      评论:0      收藏:0      [点我收藏+]

标签: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工具使用

  #查看操作的数据表结构

bubuko.com,布布扣

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表名 

 #执行结果如下:

bubuko.com,布布扣

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)

 #执行结果如下:

bubuko.com,布布扣

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表名

 #执行结果如下:

 bubuko.com,布布扣

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表名

 #执行结果如下:

 bubuko.com,布布扣



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

本文出自 “成都@阿状” 博客,请务必保留此出处http://azhuang.blog.51cto.com/9176790/1588019

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

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

原文地址:http://azhuang.blog.51cto.com/9176790/1588019

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!