修改线上的表容易导致线网数据出现问题严重导致数据库崩掉(尤其是主从同步的时候),所以一般不建议直接修改线网的表
一般情况建表的时候最好预留保留字段和json的扩展字段,保留字段用于需要经常排序或者查询的,json扩展字段用于简单的扩展信息
如果实在需要修改表,必须按照pt-online-schema-change 的方式修改,这个的大致原理是:
创建新表-》修改新表的表结构-》新建旧表数据新增或者修改的触发器-》往新表插入数据-》修改旧表表名-》修改新表表名为旧表原表名-》删除旧表以及触发器
# 下载
docker pull centos
docker run -it -d --name mysql-tool centos
docker exec -it mysql-tool /bin/bash
[root@localhost admin]# wget
percona.com/get/percona-toolkit.tar.gz
# 解压
[root@localhost admin]# tar -zvxf percona-toolkit.tar.gz
[root@localhost admin]# cd percona-toolkit-3.0.13/
# 安装perl依赖