MySQL waiting for handler commit

sql语句为什么长时间处于waiting for handler commit状态?

img

一般就这几种问题,需要分析下

  • 事务未提交,当一个语句启动了一个事务,但未执行COMMIT或ROLLBACK语句提交或回滚事务时,该语句会处于waiting for handler commit状态。这是因为InnoDB存储引擎要等待事务结束才能释放相关的锁资源。

  • 当一个语句需要访问被其他事务锁定的资源时,该语句会等待锁释放,进入waiting for handler commit状态。

  • 如果硬盘I/O出现瓶颈,MySQL在读写数据文件和日志文件时也会被阻塞,从而进入等待状态。