【mysql】如何在一个大表里新加表结构? pt-online-schema-change工具带你去实现

【mysql】如何在一个大表里新加表结构? pt-online-schema-change工具带你去实现

依然范儿特西
2022-10-26 / 0 评论 / 17 阅读 / 正在检测是否收录...

mysql面试题: 如何在一个大表里新加表结构?

直接加, 会很慢, 显然不可取,

正确做法是:

A表: 大数据量的表(原始表)
B表: 含有新增表结构的表(新表)
直接创建B表,然后把A表的 存量和增量  都存入B表,  最后删除A表,把B表的表名字改为A表

现在有个工具,可以很好的实现这个功能 :

pt-online-schema-change

https://docs.percona.com/percona-toolkit/pt-online-schema-change.html

工作原理是

创建一个新表,在新表上执行表结构修改,然后从原表中copy原始数据到表结构修改后的表,当数据copy完成以后就会将原表移走,用新表代替原表,默认动作是将原表drop掉。在copy数据的过程中,任何在原表的更新操作都会更新到新表,因为这个工具在会在原表上创建触发器,触发器会将在原表上更新的内容更新到新表。 注意: 如果表中已经定义了触发器这个工具就不能工作了!!

1

评论 (0)

取消