首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL - pt-online-schema-change对数据库性能的影响

MySQL - pt-online-schema-change对数据库性能的影响
EN

Stack Overflow用户
提问于 2011-12-08 19:40:09
回答 3查看 921关注 0票数 1

我想使用pt-online- schema -change来更改一个大表(~100M条记录)的模式,这个工具在运行时会影响MySql的性能吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-05-25 19:37:55

根据设计,该工具不会对性能产生重大影响。首先,让我们回顾一下该工具的作用:

  • 将触发器附加到当前表,以便将所有更新、删除和插入操作复制到新表中。
  • 按块复制现有数据,这些数据由key

进行分区

第一部分将使所有的写操作加倍,这是没有办法的。第二部分是批处理操作,它可能会锁定当前表并占用大量IO。

幸运的是,第二部分被分成块,pt-online-schema-change非常聪明地知道块有多大,以及块之间等待的时间有多长:

  • 它检查块之间的slave replication,如果延迟太大则暂停。
  • 它检查load (通常由正在运行的线程数量衡量),并在有太多查询运行时暂停(这意味着锁争用或高CPU/IO使用率)。如果负载非常高,它甚至可以中止。
  • 它将InnoDB锁设置配置为最有可能成为任何锁争用的牺牲品,因此生产查询将顺利运行。
  • 默认情况下,块大小是动态更改的块大小,以保持其运行时一致,使用先前块大小的加权平均值,以前的块大小太大<

>E226>(例如,由于具有相同键的大量行)将被<E127跳过。

因此,您的服务器可能只会受到副本的轻微影响。但是,当然不能保证,如果可能,您应该在数据库的登台版本上运行该工具。如果出现问题,您可以安全地中止工具,而不会丢失数据。

票数 3
EN

Stack Overflow用户

发布于 2014-01-18 01:48:00

在线模式更改相当激烈,同时对原始表执行的所有插入/更新/删除操作都会加倍(该工具会添加触发器,以便在新的副本上复制这些操作),并且原始表的每一行都会被逐个复制。

如果您担心这可能会对您的数据库产生什么影响,请查看文档:http://www.percona.com/doc/percona-toolkit/2.2/pt-online-schema-change.html

有几种方法可以控制工具本身,包括检查线程数、复制延迟,以及修改每个块的大小/每个块应该花费的时间。

票数 1
EN

Stack Overflow用户

发布于 2011-12-08 19:42:47

它会对磁盘进行读写,消耗内存和CPU,所以,是的,它会在运行时影响性能。怎么可能不是这样呢?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8430477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档