MySQL - 执行更新

时间:2017-10-20 07:47:18

标签: mysql rds

我在Amazon RDS中运行一个为网站提供服务的MySQL数据库。其中一个表中大约80MB的数据每小时更换一次。我将数据加载到另一个表中,然后使用重命名交换表,然后删除另一个表。

大部分时间一切都很好。当每小时更新一次时,CPU峰值大约为10%并回到2%或3%,这是正常站点流量的CPU消耗。

然而,偶尔(无模式),CPU在更新时几乎达到100%,并且在更新完成很久之后一小时后保持非常高,直到下一次更新。更新需要几秒钟。在整个小时内,到站点的流量是正常的。此外,在此期间,show processlist为空 - 没有卡住进程。

有几次,我在小时结束前手动触发更新,CPU恢复正常。

我的问题是:假设数据加载存在效率低下的问题,错误的查询或更新会导致CPU在完成执行后长时间保持高电平吗?

下次发生时我会运行SHOW ENGINE INNODB STATUS。当我这样做时,我应该寻找什么?

一些细节如果有用:

  • 在multi-az
  • 中运行的RDS m4.large实例
  • MySQL版本5.6.27
  • InnoDB引擎
  • 连接池使用默认的8个连接

0 个答案:

没有答案