【发布时间】:2012-01-15 20:37:21
【问题描述】:
我想使用 pt-online-schema-change 来改变一个大表(~100M 记录)的架构,这个工具在运行时会影响 MySql 的性能吗?
【问题讨论】:
标签: mysql percona pt-online-schema-change
我想使用 pt-online-schema-change 来改变一个大表(~100M 记录)的架构,这个工具在运行时会影响 MySql 的性能吗?
【问题讨论】:
标签: mysql percona pt-online-schema-change
它会在磁盘上读写东西,消耗内存并使用CPU,所以是的,它会影响运行时的性能。不然怎么可能?
【讨论】:
在线架构更改非常激烈,同时对原始表的所有插入/更新/删除操作都加倍(该工具添加了触发器,因此这些操作在新副本上重复),并且原始表的每一行都逐个表被复制过来。
如果您担心这可能会对您的数据库产生什么影响,请查看文档:http://www.percona.com/doc/percona-toolkit/2.2/pt-online-schema-change.html
您可以通过多种方式让工具自行调节,包括检查线程数、复制延迟以及修改每个块的大小/每个块需要多长时间。
【讨论】:
根据设计,该工具不会对性能产生显着影响。首先,让我们回顾一下该工具的作用:
第一部分将使所有写入翻倍,并且没有办法解决这个问题。第二部分是批处理操作,可能会锁定当前表并消耗大量 IO。
幸运的是,第二部分被分成了块,pt-online-schema-change
非常聪明地知道块有多大以及在块之间等待多长时间:
因此,您的服务器可能只会受到副本的轻微影响。但当然,不能保证,如果可能,您应该在数据库的暂存版本上运行该工具。如果出现问题,您可以安全地中止该工具,而不会丢失数据。
【讨论】: