在线修改表结构
在线修改表结构必须慎重 ,在业务系统运行的过程中随意修改、删改字段,会造成重大事故,而且在修改之前,必须对表做备份。
常规的做法是业务停机,维护表结构。(比如半夜做系统维护更新,12306、淘宝等…)
但是不影响正常业务的表结构是运行在线修改的。(比如INT不够用换成BIGINT,或者某个字段有唯一性约束,现在去掉唯一性约束,但是也多多少少也会影响性能 )
ALTER TABLE修改表结构的弊病
这些修改表是属于DDL语句
- 由于修改表结构是表级锁,因此在修改表结构时,影响表写入操作
- 锁住表禁止一切的读写,如果给1千万数据表中添加一个字段,这个时间会稍微有点长 ,期间不能做任何读写操作,对线上业务影响非常大,数据越多锁表时间越长。
- 如果修改表结构失败,必须还原表结构,所以耗时更长
- 大数据表记录多,修改表结构锁表时间很久
PerconaTookit工具利器
Percona Toolkit简称pt工具—PT-Tools,是Percona公司开发用于管理MySQL的工具,功能包括检查主从复制的数据一致性、检查重复索引、定位IO占用高的表文件、在线DDL等。
- pt-archive ----MySQL的在线归档,无影响生产
- pt-kill -----自定义查杀。确保慢查询及恶性攻击对生产无影响
- pt-online-schema-change ----在线DDL操作,对上亿的大表加索引加字段且对生产无影响
- pt-query-digest -----慢查询Log的分析。
- pt-slave-delay —就是指定从库比主库延迟多长时间
- pt-tab