mysql 服务器在 InnoDB 表上插入时冻结

mysql 服务器在 InnoDB 表上插入时冻结
CREATE TABLE IF NOT EXISTS `music_batch_song` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `music_batch_id` bigint(20) DEFAULT NULL,
  `song_id` bigint(20) DEFAULT NULL,
  `comment` varchar(10) DEFAULT NULL,
  `position` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `music_batch_song_idx` (`music_batch_id`,`song_id`),
  KEY `song_fk` (`song_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=142506 ;

我在 amazon aws 上的 mysql db 上有一张表,里面有大约 90k 条记录。昨天,经过几个小时非常缓慢的简单插入(数百条),db 停止响应通过 PHP PDO 进行的插入。mysql 服务器重启后,它又恢复了工作。你知道这是怎么发生的吗?问题出现时,服务器几乎处于不活动状态。单个单行 PDO 插入查询无法到达末尾。插入内容如下:“INSERT INTO music_batch_song (music_batch_id, song_id) VALUES (188, 32866)”。服务器重启后,查询像往常一样只花了几分之一秒的时间……

答案1

挖掘 mysql 日志。它很可能会显示死锁或其他 InnoDB 错误。酌情处理。

相关内容