mysql百万级表在不停机的情况下增加一个字段使用pt-online-schema-change。pt-online-schema-change是percona公司开发的一个工具,在percona-toolkit包里面可以找到这个功能,它可以在线修改表结构。首先它会新建一张一模一样的表,表名一般是_为前缀_new后缀,例如原表为t_user临时表就是_t_user_new。
一、mysql百万级表在不停机的情况下增加一个字段要怎么处理的
mysql百万级表在不停机的情况下增加一个字段使用pt-online-schema-change。pt-online-schema-change是percona公司开发的一个工具,在percona-toolkit包里面可以找到这个功能,它可以在线修改表结构。
首先它会新建一张一模一样的表,表名一般是_为前缀_new后缀,例如原表为t_user 临时表就是_t_user_new;
然后在这个新表执行更改字段操作;
然后在原表上加三个触发器,DELETE/UPDATE/INSERT,将原表中要执行的语句也在新表中执行;
最后将原表的数据拷贝到新表中,然后替换掉原表。
SQL语句:
ALTER TABLE tmp_task_user ADD support tinyint(1) unsigned NOT NULL DEFAULT ‘1’;
工具命令:
sh pt.sh tmp_task_user “ADD COLUMN support tinyint(1) unsigned NOT NULL DEFAULT ‘1’”
好处:
- 降低主从延时的风险
- 可以限速、限资源,避免操作时MySQL负载过高
建议:
- 在业务低峰期做,将影响降到最低
- 删除索引后再修改表结构,效率将大大提升
延伸阅读:
二、应用架构是什么
应用架构(Application Architecture)是描述了IT系统功能和技术实现的内容。应用架构分为以下两个不同的层次:
- 企业级的应用架构:企业层面的应用架构起到了统一规划、承上启下的作用,向上承接了企业战略发展方向和业务模式,向下规划和指导企业各个IT系统的定位和功能。在企业架构中,应用架构是最重要和工作量最大的部分,他包括了企业的应用架构蓝图、架构标准/原则、系统的边界和定义、系统间的关联关系等方面的内容。
单个系统的应用架构:在开发或设计单一IT系统时,设计系统的主要模块和功能点,系统技术实现是从前端展示到业务处理逻辑,到后台数据是如何架构的。这方面的工作一般属于项目组,而不是企业架构的范畴。