MYSQL加字段之pt-online-change-schema

Posted Tank

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MYSQL加字段之pt-online-change-schema相关的知识,希望对你有一定的参考价值。

1, 安装dbd perl-io-socket-ssl percona-toolkit
yum list|grep DBD
yum list|grep Socket|grep SSL
 
yum -y install perl-DBD-mysql.x86_64
yum -y install perl-IO-Socket-SSL.noarch
yum -y install "perl(Term::ReadKey)"
 
rpm -ivh percona-toolkit-2.2.17-1.noarch.rpm
 
2,查看字符集
show variables like ‘character%‘;
 
3, 开始添加字段:
pt-online-schema-change \
--user=root \
--host=127.0.0.1 \
--port=3306 \
--charset=utf8 \
--alter="add index idx_url_date (mg_url, mg_datetime)" \
D=spider,t=js_mogu_goods \
--exec \
--max-load Threads_running=1000 \
--critical-load="Threads_running:200"
 
相关参数:
--nodrop-old-table  不删除表
--max-load Threads_running=   超过此值将暂停
--critical-load Threads_running=  超过此值将停止
 
4,--alter-foreign-keys-method 的值可以为:auto、rebuild_constraints、drop_swap、none
1、当业务量较大时,修改操作会等待没有数据修改后,执行最后的rename操作。因此,在修改表结构时,应该尽量选择在业务相对空闲时,至少修改表上的数据操作较低时,执行较为妥当。
 
2、如果对外键表操作时,四种外键操作类型需要根据表的数据量和可靠程度,进行选择。处于可靠性的原因,尽量使用rebuild_constraints类型,如果没有可靠性要求,可以使用auto类型。
 
3、当--alter-foreign-keys-method=none时,外键索引将失效,需要重建外键索引,方可再次使用
 
4、由于可能存在一定的风险,在操作之前,建议对数据表进行备份,可以使得操作更安全、可靠。
 
 

以上是关于MYSQL加字段之pt-online-change-schema的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 之 foreign key

EasyClick 之 MySQL 分组查询

EasyClick 之 MySQL 分组查询

Mysql之分组查询

mysql 分区PARTITIONS之基本使用

关于mysql无法创建函数索引之蛋疼事情,具体如下: