在线修改表数据
1、常规做法就是业务停机,维护表结构。
2、不影响的可以在线修改。
Alter Table修改表结构
修改表结构,表级锁,修改表结构影响写入操作,修改表结构,必须还原表结构,所以耗时更长。大数据表记录多,锁表时间长。
3、PerconaTookit工具
先复制表,然后旧表创建触发器,旧表操作同步执行到新表,然后对新表修改表结构,然后还同事复制旧表数据过来,操作完成后锁表替换旧表。
安装
不能安装在同一台服务器上,
1)安装第三方依赖
yum install -y perl-DBI
yum install -y perl-DBD-mysql
yum install -y perl-IO-Socket-SSL
yum install -y perl-Digest-MD5
yum install -y perl-TermReadKey
2)安装PerconaTookit工具
rpm -ivh *.rpm
pt-online-schema-change OPTIONS DSN
| 参数 | 实际含义 | 参数 | 实际含义 |
| --host | IP地址 | t | 数据表 |
| --user | 用户名 | --alter | 修改语句 |
| --password | 密码 | --exectue | 执行修改 |
| --prot | 端口号 | --dry-run | 测试执行 |
| D | 逻辑库 | 打印过程 |
测试案例
ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
修改mysql认证方式
pt-online-schema-change --host=192.168.0.1 --port=3306 --user=root --password=123456 --alter "MODIFY name VARCHAR(20) NOT NULL COMMENT '收货人' " D=neti, t=t_customer_address --print --execute
订单号唯一编号,经常用来检索,应当是数字类型主键,流水号一般用来打印便于阅读一般1位表示线上、线下,6个字符表示仓库号/零售店,5位品类编号,6位购物日期,10位随机。
insert语句需要带着事务执行,比通过文本文档导入慢很多。
浙公网安备 33010602011771号